NAVIGATION_MODE_TABS を備えた ActionBar と、アプリケーションに実際のタブがいくつかあります。タスクは非常に簡単です: 選択したタブのタイトルを太字にします (そして、タブが選択を失うと通常に戻ります)。しかし、そのようなタスクを達成することは大きな頭痛の種になりました。Tab オブジェクトには、基になる TextView にアクセスするためのメソッドがありません。そのため、タブ タイトルにカスタム ビューを使用しましたが、このビューの位置が間違っています。
助けて教えてください:
- タブテキストを直接操作する方法がある場合、または
- カスタムTextViewのデフォルトの配置を達成するにはどうすればよいですか?
私が使用しているコード:
活動中 ->
final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
TextView textView = (TextView) tab.getCustomView();
textView.setTypeface(null, Typeface.BOLD);
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
TextView textView = (TextView) tab.getCustomView();
textView.setTypeface(null, Typeface.NORMAL);
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
// probably ignore this event
}
};
for (int i = 0; i < 3; i++) {
TextView textView = (TextView)
getLayoutInflater().inflate(R.layout.tab_title, null);
textView.setText("Tab " + i);
actionBar.addTab(actionBar.newTab()
.setCustomView(textView)
.setTabListener(tabListener));
}
layout.tab_title で ->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />