2010-12-30 1 views

Répondre

6

MISE À JOUR

Au lieu de faire un exemple et de prendre le crédit, j'ai trouvé mon vieux tutoriel marque-page.

How to change background on Android Tabs

+0

Pourriez-vous cela un peu plus? Je ne peux pas obtenir cette méthode pour travailler autre chose que changer l'icône affichée sur l'onglet. – TwentyMiles

+0

Ceci est un tutoriel fantastique! Merci! – TwentyMiles

+0

Pas de problème :) Bien que cela a résolu votre problème. – LuckyLuke

1

Je vous suggère de mettre en œuvre votre propre tab_indicator_selector.xml.

Exemple:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states ... --> 
    <!-- Focused states ... --> 
    <!-- Pressed --> 
    <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_pressed" /> 
    <item android:state_pressed="true" android:drawable="@drawable/tab_pressed" /> 
</selector> 

Et c'est le sélecteur d'état tab_pressed.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:top="53dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/white" /> 
     </shape> 
    </item> 
    <item android:top="53dp" android:bottom="1dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/white" /> 
     </shape> 
    </item> 
    <item android:left="2dp" android:right="2dp"> 
     <shape android:shape="rectangle"> 
      <gradient android:angle="90" 
       android:startColor="@color/black" 
       android:endColor="@color/white" /> 
      <stroke android:width="2dp" android:color="@color/red" /> 
     </shape> 
    </item> 
</layer-list> 

peuvent être atteints Les autres états en créant tab_focused.xml, tab_selected.xml et tab_unseleceted.xml et définir les combinaisons android: state_XXX et la couleur de l'arrière-plan de l'onglet est donnée par l'élément, mais vous pouvez utiliser une couleur unie sur une forme de rectangle.

Un tab_indicator personnalisé (sans image) va comme ceci:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="0dip" 
    android:layout_height="52dip" 
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:background="@drawable/tab_indicator_selector" 
    android:layout_marginTop="2dp" 
    android:padding="2dp"> 

    <TextView android:id="@+id/tab_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="11dp" 
     android:textStyle="bold" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     style="?android:attr/tabWidgetStyle" 
    />  
</RelativeLayout> 
Questions connexes