如何在android中设置导航选项卡的背景颜色

时间:2013-07-03 03:00:48

标签: android

如何使用这种代码在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中创建一个标签。我只是想知道它是否可能在这种代码中。谢谢。

3 个答案:

答案 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)