如何使用这种代码在android中设置导航选项卡的背景颜色。 `
ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = bar.newTab();
ActionBar.Tab tab2 = bar.newTab();
tab1.setText("Fragment A");
tab2.setText("Fragment B");
tab1.setTabListener(new MyTabListener());
tab2.setTabListener(new MyTabListener());
bar.addTab(tab1);
bar.addTab(tab2);`
我没有在xml中创建一个标签。我只是想知道它是否可能在这种代码中。谢谢。
答案 0 :(得分:3)
您是否尝试通过更改res / values / themes.xml中的tabbar样式来设置标签背景的样式?以下是Theme.Sherlock.Light主题的示例。
<style name="Theme.test" parent="@style/Theme.Sherlock.Light">
<item name="android:actionBarTabBarStyle">@style/Theme.test.tabbar.style</item>
<item name="actionBarTabBarStyle">@style/Widget.test.ActionBar.TabBar</item>
</style>
<style name="Theme.test.tabbar.style" parent="@style/Theme.Sherlock.Light.ActionBar">
<item name="android:background">#00ff00</item>
<item name="background">#00ff00</item>
</style>
<style name="Widget.test.ActionBar.TabBar" parent="Widget.Sherlock.Light.ActionBar.TabBar">
<item name="android:background">#00ff00</item>
<item name="background">#00ff00</item>
</style>
由于HoneyComb和pre-HoneyComb设备,您需要设置两次。要使用新主题,您还需要将以下内容添加到清单文件中的应用程序标记中。
android:theme="@style/Theme.test"
答案 1 :(得分:1)
我首先查看其他SO帖子:Android ActionBar Tab Color但是,您似乎只能设置整个背景颜色&amp;底栏的颜色,而不是每个标签的颜色。
否则,如果你想使用old-skool,你可以使用TabHost而不是ActionBar。这将允许您为每个特定选项卡设置颜色,并且您应该能够将它们设置为与4.2ish ActionBar类似的样式。 '很简单:
tabHost.getTabWidget().getChildAt(TAB_1_INDEX).setBackgroundResource(R.drawable.tab_1_inactive);
tabHost.getTabWidget().getChildAt(TAB_2_INDEX).setBackgroundResource(R.drawable.tab_2_inactive);
tabHost.getTabWidget().getChildAt(TAB_3_INDEX).setBackgroundResource(R.drawable.tab_3_inactive);
tabHost.getTabWidget().getChildAt(pos).setBackgroundResource(activeTabShape[pos]);
答案 2 :(得分:0)