2012-10-13 13 views
8

Używam biblioteki ViewpagerIndicator autorstwa Jake'a Whartona. Używam kodu zakładek w połączeniu z biblioteką ActionBarSherlock. Wszystko działa dobrze, ale staram się stylizować tło kart i nie mogę zrozumieć, w jaki sposób. Chciałbym ciemny pasek akcji z ciemnymi zakładkami i fragmentami światła (zawartość zakładki).Jak zmienić tło karty w zakładkach viewpagerindicator?

Motyw podstawowy, którego używam, to Theme.Sherlock.Light.DarkActionBar. Rozszerzam ten styl, czyniąc go rodzicem stylu, który ustawia atrybuty dla zakładek (jak kolor tekstu, kolor wskaźnika itp.). Powoduje to ciemne paski akcji, lekkie tabulatory i lekkie fragmenty.

Nie mogę znaleźć niczego, co zmieni tło samych kart. Jedyny sposób, w jaki mogę to zmienić, to zmiana całej aplikacji na ciemną (przy użyciu Theme.Sherlock). Oto mój kod do tej pory:

<style name="vpiTheme" parent="Theme.Sherlock.Light.DarkActionBar"> 
    <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item> 
</style> 

<style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator"> 
    <item name="android:textColor">#FF000000</item> 
    <item name="android:paddingTop">6dp</item> 
    <item name="android:paddingBottom">6dp</item> 
    <item name="android:paddingLeft">16dip</item> 
    <item name="android:paddingRight">16dip</item> 
    <item name="android:maxLines">2</item> 
</style> 

Odpowiedz

0

Pierwszy dodać rozciągliwej do swojego projektu, jeden poniżej nazywa tab_indicator.xml:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/black" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@android:color/white" /> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/black" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@android:color/white" /> 
</selector> 

następnie odwołać swój rozciągliwej w swoim stylu:

<item name="android:background">@drawable/tab_indicator</item> 

Spowoduje to, że aktywna karta będzie miała białe tło, a pozostałe czarne.

+0

To zastąpiłoby kolorowe wskaźniki, gdyby nie? – Flyview

+0

Tak, zgadza się. Zapomniałem, że moim celem było usunięcie wskaźnika. Odpowiedzi tutaj http://stackoverflow.com/questions/10364045/actionbarsherlock-actionbar-custom-background- with-divider powinny być odpowiednie, ponieważ domyślny wskaźnik/tło jest zrobione z 9 obrazem poprawki. – grant

7

Ponieważ kanału alfa 9-płatkowe są przeważnie przezroczyste, kolor zakładek może być zmieniony poprzez dodanie koloru tła dla całego ViewPagerIndicator, tak:

<com.viewpagerindicator.TabPageIndicator 
    android:id="@+id/indicator" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:background="#333333" /> 

W ten sposób można utrzymać za pomocą Motyw oparty na Theme.Sherlock.Light.DarkActionBar i nie trzeba tworzyć nowych rysunków.

Powiązane problemy