2014-01-19 2 views
2

Мне нужно изменить цвет индикатора вкладки, но мне это не удалось. Кто-нибудь знает, как это сделать? Это мой stiles.xml:Change IndicatorColor закладки по умолчанию

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:actionBarTabTextStyle">@style/MyCustomTabView</item> 
    <item name="android:ratingBarStyleIndicator">@style/indicator_color</item> 
    <item name="android:actionBarTabStyle">@style/CustomActionBarTheme</item> 
</style> 
<style name="MyCustomTabView" parent="Theme.AppCompat.Light"> 
    <item name="android:actionBarItemBackground">@style/indicator_color</item> 
    <item name="android:textColor">#ffffff</item> 
    <item name="android:textSize">12dp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:backgroundStacked">#ffffff</item> 
</style> 
<style name="indicator_color"> 
    <item name="android:background">#ffffff</item> 
</style> 
<style name="CustomActionBarTheme" 
    parent="Theme."> 
    <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> 
</style> 

<!-- ActionBar tabs styles --> 
<style name="MyActionBarTabs" 
    parent="Theme.AppCompat.Light"> 
    <!-- tab indicator --> 
    <item name="android:background">@drawable/actionbar_tab_indicator</item> 
</style> 

и это actionbar_tab_indicator.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- STATES WHEN BUTTON IS NOT PRESSED --> 
<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" 
    android:state_pressed="false" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 
<item android:state_focused="false" android:state_selected="true" 
    android:state_pressed="false" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 

<!-- Focused states (such as when focused with a d-pad or mouse hover) --> 
<item android:state_focused="true" android:state_selected="false" 
    android:state_pressed="false" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 
<item android:state_focused="true" android:state_selected="true" 
    android:state_pressed="false" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 


<!-- STATES WHEN BUTTON IS PRESSED --> 

<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" 
    android:state_pressed="true" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 
<item android:state_focused="false" android:state_selected="true" 
    android:state_pressed="true" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 

<!-- Focused states (such as when focused with a d-pad or mouse hover) --> 
<item android:state_focused="true" android:state_selected="false" 
    android:state_pressed="true" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 
<item android:state_focused="true" android:state_selected="true" 
    android:state_pressed="true" 
    android:drawable="@drawable/abc_ab_bottom_solid_light_holo" /> 
</selector> 

Спасибо заранее.

ответ

1

Чтобы изменить индикатор, используемый для вкладок навигации, создайте тему активности, которая переопределяет свойство actionBarTabStyle. Это свойство указывает на другой ресурс стиля, в котором вы переопределяете свойство фона, которое должно указывать допустимый список состояний.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- the theme applied to the application or activity --> 
    <style name="CustomActionBarTheme" 
      parent="@style/Theme.Holo"> 
     <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> 
    </style> 

    <!-- ActionBar tabs styles --> 
    <style name="MyActionBarTabs" 
      parent="@style/Widget.Holo.ActionBar.TabView"> 
     <!-- tab indicator --> 
     <item name="android:background">@drawable/actionbar_tab_indicator</item> 
    </style> 
</resources> 

Подробнее here.

0

Вы можете изменить фон TabWidget (это, возможно, что вы говорите), как это:

Если это ваш стиль:

<style name="indicator_color"> 
    <item name="android:background">@android:color/black</item> 
</style> 

Используйте это так:

<TabWidget 
       style="@style/indicator_color" 
       android:id="@android:id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       > 
      </TabWidget> 

Также обратите внимание, что #ffffff - белый цвет. Таким образом, вы можете не видеть эффект.

+0

Это не мое дело, я работаю над вкладкой ActionBar по умолчанию + Swipe Views – Pier

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