5

ホーム画面がタブビューである Android アプリケーションがあります。タブの 1 つは「受信トレイ」アクティビティに移動します。新しいメッセージの数を示す数字を表示したいと思います。これはiPhoneアプリの標準機能のようです。これに対するシステムサポートはありますか?そうでない場合、Android タブビューにこの効果を実装する最も簡単な方法は何ですか?

4

4 に答える 4

4

Android ソースコード (TabHost.java) で読み取れることから、iPhone と同様の方法で標準ウィジェットを使用する方法はありません。

あなたができることは次のとおりです。

  1. 受信トレイの数が変更された場合は常に、 http://developer.android.com/reference/android/widget/TabHost.html#clearAllTabs ()を使用してすべてのタブを削除します。
  2. 次に、http: //developer.android.com/reference/android/widget/TabHost.html#addTab (android.widget.TabHost.TabSpec )を使用してタブを再度作成しますが、TabSpec が [http:// developer.android.com/reference/android/widget/TabHost.TabSpec.html#setIndicator(java.lang.CharSequence, android.graphics.drawable.Drawable)][1] . そこに独自のドローアブルを渡し、それを使用して自分でバッジをペイントできます。

ただし、iPhone バッジはラベルの右上隅にうまく配置されているため、iPhone スタイル バッジの代わりにはなりません。そして今のところ、それを変更する方法はありません。

一方、これはすべて Java であり、誰かが TabHost クラスを拡張して、iPhone スタイルのバッジのサポートを追加することができます。

[1]: http://developer.android.com/reference/android/widget/TabHost.TabSpec.html#setIndicator(java.lang.CharSequence , android.graphics.drawable.Drawable)

于 2010-12-03T08:42:34.123 に答える
0

ここから viewbadger.jar ファイルをダウンロードして、この例を参照用に使用できます https://github.com/jgilfelt/android-viewbadger

これがサンプルコードです

TabWidget タブ = (TabWidget) findViewById(android.R.id.tabs); BadgeView バッジ = 新しい BadgeView(コンテキスト、タブ、3); Badge.setTextSize(12); Badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT); Badge.setText("0")); Badge.toggle();

于 2014-09-25T06:55:37.103 に答える
-2

オブジェクトのリストがあるとします。read = falseオブジェクトの「読み取り」プロパティを作成し、タブを開いた瞬間にオブジェクトの数をカウントできます。

于 2010-12-03T08:28:16.100 に答える