2012-06-30 17 views
14

Ok, ich habe mehr Verstand verloren als je zuvor. Ich kann nicht verstehen, wie man das verdammte Ding style. Ich habe es geschafft, den Hintergrund der Registerkarte selbst zu ändern, aber ich kann nicht die Farbe der Leiste unter der ausgewählten Registerkarte ändern.Wie ändere ich die Farbe der Registerkarte 'Unterbalken' in actionbarsherlock

Wie man es von Blau zu etwas ändert. leider

Meine styles.xml Ich habe sehr schlecht zu verstehen, wie es funktioniert

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


    <style name="Theme.Styled" parent="Theme.Sherlock.Light"> 
     <item name="actionBarTabStyle">@style/Widget.Styled.ActionBarTab</item> 
     <item name="android:actionBarTabStyle">@style/Widget.Styled.ActionBarTab</item> 

     <item name="actionBarTabBarStyle">@style/Widget.Styled.ActionBarTabBar</item> 
     <item name="android:actionBarTabBarStyle">@style/Widget.Styled.ActionBarTabBar</item> 

     <item name="actionBarTabTextStyle">@style/myText</item> 
     <item name="android:actionBarTabTextStyle">@style/myText</item> 


    </style> 

    <style name="Widget.Styled.ActionBarTab" parent="Widget.Sherlock.Light.ActionBar.TabView"> 
    <!-- <item name="background">@drawable/startbcg</item> 
     <item name="android:background">@drawable/startbcg</item> 
     <item name="backgroundSplit">@drawable/bg_striped_split</item> 
     <item name="android:backgroundSplit">@drawable/bg_striped_split</item> 
    --> 
    </style> 


    <style name="Widget.Styled.ActionBarTabBar" parent="Widget.Sherlock.Light.ActionBar.TabBar"> 

     <item name="background">@drawable/startbcg</item> 
     <item name="android:background">@drawable/startbcg</item> 
     <item name="backgroundSplit">@drawable/bg_striped_split</item> 
     <item name="android:backgroundSplit">@drawable/bg_striped_split</item> 

    </style> 

    <style name="myText" parent="Widget.Sherlock.Light.ActionBar.TabText"> 
     <item name="android:textAppearance">@android:style/TextAppearance.Medium</item> 
     <item name="android:textColor">@android:color/primary_text_dark</item> 
     <item name="android:textSize">10sp</item> 


    </style> 
<style name="myTextInv" parent="Widget.Sherlock.Light.ActionBar.TabText.Inverse"> 
     <item name="android:textAppearance">@android:style/TextAppearance.Medium</item> 
     <item name="android:textColor">@android:color/primary_text_dark</item> 
     <item name="android:textSize">10sp</item> 


    </style> 
</resources> 

Bonus Frage: wo ich finden kann, welche Eigenschaften (wie Hintergrund) bestimmte Sachen hat.

Antwort

8

Ich fand, dass es für den Hintergrund besser ist, die Zeichnungsdateien (9 Patches und XML) zu kopieren, die im Android SDK res Verzeichnis gefunden wurden, und sie so zu ändern, dass sie die gewünschte Farbe haben.

Sie verwenden einen Hintergrund mit der unteren Leiste, also glaube ich nicht, dass es möglich ist, die untere Leiste allein zu ändern.

Hier ist, was ich habe, mit grüner Farbe für den unteren bar Arbeits:

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

<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused" /> 

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

<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> 
</selector> 

Ich hoffe, es hilft:

<style name="customTabStyle" parent="Widget.Sherlock.ActionBar.TabView"> 
    <item name="android:showDividers">none</item> 
    <item name="android:measureWithLargestChild">true</item> 
    <!-- This was a copy from the sdk drawable --> 
    <item name="android:background">@drawable/tab_indicator</item> 

    <item name="background">@drawable/tab_indicator</item> 
    <item name="android:gravity">center</item> 
    <item name="android:textStyle">normal</item> 
</style> 


<style name="customTabBar" parent="Widget.Sherlock.ActionBar.TabBar"> 
    <item name="android:showDividers">middle</item> 

    <item name="android:divider">@drawable/tab_divider</item> 
    <item name="divider">@drawable/tab_divider</item> 

    <item name="android:dividerPadding">10dip</item> 

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

Die Tab-Anzeige sieht wie folgt aus!

+0

Ich mache etwas ähnliches hier !!! http://stackoverflow.com/questions/19623805/actionbarsherlock-stacked-action-bar-styling-issue – toobsco42

17

Verwenden Sie ActionbarStyleGenerator, um die Aktionsleiste zu formatieren. Dies ist bei weitem der einfachste und intuitivste Weg.

Gewusst wie:

  1. die Benutzeroberfläche verwenden, um Farben für verschiedene Elemente
  2. Ist das erledigt, klicken Sie auf „DOWNLOAD .ZIP“
  3. Die ZIP-Datei enthält Ressource-Dateien auswählen, die Sie in kopieren Ihre Projekt Res/Layout und Res/DrawableXXXX Ordner
+0

nach dem Herunterladen und Kopieren der notwendigen Dateien muss ich etwas im Code ändern? – Shrikant

+1

@Shrikant, müssen Sie das Thema auf die Aktivität in Ihrer Manifest-Datei zuzuordnen:

+0

ich es versucht, aber nach wie vor nicht in der Lage zu Holen Sie sich das gewünschte Ergebnis :( – Shrikant

Verwandte Themen