2012-10-13 11 views
8

Sto usando la libreria ViewpagerIndicator di Jake Wharton. Sto usando il codice delle schede insieme alla libreria ActionBarSherlock. Tutto funziona bene, ma sto cercando di definire lo sfondo delle schede e non riesco a capire come. Vorrei una barra di azione scura con schede scure e frammenti chiari (contenuto della scheda).Come modificare lo sfondo della scheda nelle schede di viewpagerindicator?

Il tema di base che sto utilizzando è Theme.Sherlock.Light.DarkActionBar. Estendo questo stile rendendolo il genitore di uno stile che imposta gli attributi per le schede (come colore del testo, colore dell'indicatore, ecc.). Ciò si traduce in barra di azione scura, schede chiare e frammenti di luce.

Non riesco a trovare nulla che cambierà lo sfondo delle schede stesse. L'unico modo in cui posso cambiarlo è cambiare l'intera app in oscurità (usando Theme.Sherlock). Ecco il mio codice finora:

<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> 

risposta

0

Prima aggiungere un disegnabile al progetto, quello di seguito è chiamato 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> 

quindi fare riferimento a tuo drawable nel tuo stile:

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

Ciò farà sì che la scheda attiva abbia uno sfondo bianco e l'altra nera.

+0

Questo sostituirà gli indicatori colorati non sarebbe? – Flyview

+0

Sì, è vero. Mi ero dimenticato che il mio obiettivo era quello di rimuovere l'indicatore. Le risposte qui http://stackoverflow.com/questions/10364045/actionbarsherlock-actionbar-custom-background-with-divider dovrebbero essere applicabili, poiché l'indicatore/sfondo predefinito viene eseguito con un'immagine di 9 patch. – grant

7

Dal momento che i drawable 9-patch sono per lo più trasparente, il colore delle schede può essere modificata con la semplice aggiunta di un colore di sfondo a tutta la ViewPagerIndicator, in questo modo:

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

questo modo è possibile continuare a utilizzare un tema basato su Theme.Sherlock.Light.DarkActionBar e non è necessario creare nuovi drawable.

Problemi correlati