ホーム画面がタブビューである Android アプリケーションがあります。タブの 1 つは「受信トレイ」アクティビティに移動します。新しいメッセージの数を示す数字を表示したいと思います。これはiPhoneアプリの標準機能のようです。これに対するシステムサポートはありますか?そうでない場合、Android タブビューにこの効果を実装する最も簡単な方法は何ですか?
4 に答える
Android ソースコード (TabHost.java) で読み取れることから、iPhone と同様の方法で標準ウィジェットを使用する方法はありません。
あなたができることは次のとおりです。
- 受信トレイの数が変更された場合は常に、 http://developer.android.com/reference/android/widget/TabHost.html#clearAllTabs ()を使用してすべてのタブを削除します。
- 次に、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)
ここから 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();
オブジェクトのリストがあるとします。read = false
オブジェクトの「読み取り」プロパティを作成し、タブを開いた瞬間にオブジェクトの数をカウントできます。