各タブスペックに変更可能な数字のバッジが含まれているタブバーを作成する必要があります。 tab_indicator.xml:android:各タブに未読数のバッジがあるタブホスト
は、各タブには、それは私がやったことは、タブinidicatorのXMLレイアウトを作成するコードでそれを膨らまなどのようなtabspecでそれを関連付けられている独自の未読数のしているタブのニュースリーダーを想像します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:paddingLeft="10dip"
android:paddingRight="10dip">
<FrameLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingTop="5dip">
<ImageView android:src="@drawable/tab_selector_friends"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:text="2"
android:layout_width="10dip" android:layout_height="10dip"
android:textColor="@color/white_text"
android:textStyle="bold" android:typeface="monospace"
android:paddingLeft="1dip" android:paddingRight="1dip"
android:textSize="10dip" android:gravity="center" android:background="@drawable/temp_red_badge_big" />
</FrameLayout>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Friends" />
</LinearLayout>
私のタブのウィジェット(MyTabWidget.javaのOnCreateのmetod):
:@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_menu);
TabHost tabHost = getTabHost();
Intent intent = new Intent().setClass(this, TodayActivity.class);
Resources resources = this.getResources();
TabHost.TabSpec spec = tabHost.newTabSpec(resources.getString(R.string.today));
View specIndicatorView;
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
specIndicatorView = inflater.inflate(R.layout.tab_indicator, null);
spec.setIndicator(specIndicatorView);
spec.setContent(intent);
tabHost.addTab(spec);
このアプローチにはいくつかの問題があります。
- 良い に見える方法でそれを設計することは非常に困難である、すなわちバッジ
- の値を変更し、それは私が必要な柔軟性を与えない
- を維持することは非常に複雑かつ困難です
- それはあまりにも複雑なアプローチのようです。
私の質問は、これを行うより良い方法を提案できますか?私が考慮しなかった別のアプローチがありますか? ありがとう!