2013-07-03 3 views
2

Как установить цвет фона вкладки навигации в 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. Я просто задавался вопросом, возможно ли это в этом виде кода. Спасибо.

+0

попробовать это http://stackoverflow.com/questions/11842418/how-to-draw-on-actionbar-tab-when-using-actionbarsherlock-in-android – Youddh

+0

https://developer.android. com/training/basics/actionbar/styling.html –

ответ

3

Вы пытались создать стиль фона вкладки, изменив стиль табеля из res/values ​​/ themes.xml? Вот пример темы 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" 
+0

спасибо за помощь :) – lhencq

1

Я хотел бы начать, проверяя это другой SO сообщения: Android ActionBar Tab Color Тем не менее, кажется, что вы можете установить только весь цвет фона & цвета нижней панели, а не цвета каждой вкладки.

В противном случае, если вы хотите перейти на старую версию, вы можете использовать TabHost вместо ActionBar. Это позволит вам устанавливать цвета для каждой конкретной вкладки, и вы должны быть в состоянии их стиль аналогично самому 4.2ish ActionBar. 'Tis очень просто:

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]); 
+0

Я действительно планирую установить весь фон на вкладку. не на элемент/вкладку. :) – lhencq

+0

Ах круто, тогда эта страница SO, на которую я ссылаюсь, имеет много хороших ресурсов. Вы должны проверить их, а затем проголосовать за то, что вам нравится. ;) –

Смежные вопросы