2013-01-02 12 views
5

Ich versuche meine Sherlock-Aktionsleiste anzupassen, aber nichts, was ich in meiner style.xml-Code einprogrammiert, wird erkannt.Styling ActionBar Sherlock

In meinem Manifest-Datei:

android:theme="@style/Theme.Sherlock" 

Mein style.xml:

<resources> 
<style name="Theme.MyAppTheme" parent="Theme.Sherlock"> 
    <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> 
</style> 

<style name="Theme.MyAppTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">#222222</item> 
    <item name="android:height">64dip</item> 
    <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> 
</style> 

<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title"> 
    <item name="android:textColor">#fff</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textSize">32sp</item> 
</style> 

ich meine ActionBar auf diese Weise ruft:

public class MainActivity extends SherlockActivity { 

com.actionbarsherlock.app.ActionBar actionbar; 

... 

actionbar = getSupportActionBar(); 

... } 

Es gibt kein Problem beim Zeigen der AC tionbar, aber das gleiche zeigt keine Anpassung in style.xml codiert, kann mir jemand helfen? Dankbar.

+0

ich etwas tue hier ähnlich zu schaffen !!! http://stackoverflow.com/questions/19623805/actionbarsherlock-stacked-action-bar-styling-issue – toobsco42

Antwort

8

Es ist, weil Sie die gleichen ursprünglichen Stil in der Manifest-Datei android:theme="@style/Theme.Sherlock" anwenden, die keinen Unterschied macht. Sie haben den benutzerdefinierten Stil mit dem Namen Theme.MyAppTheme vorbereitet, mit dem übergeordneten Element . Sie müssen also Ihren angepassten Stil (Theme.MyAppTheme) in Ihrer Manifestdatei wie android:theme="@style/Theme.MyAppTheme" deklarieren. Auch Sie müssen ohne Android-Präfix-Attribute zu wie unten enthalten, wie der andere Antworter auch sagte. Hoffe das hilft. Auch Sie können sich auf this beziehen.

<style name="Theme.MyAppTheme" parent="Theme.Sherlock.Light"> 
      <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> 
     <item name="actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item>   
    </style> 

    <style name="Theme.MyAppTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">#222222</item> 
    <item name = "background">#222222</item> 
    <item name="android:height">64dip</item> 
    <item name="height">64dip</item> 

    <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> 
<item name="titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> 
</style> 

<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title"> 
     <item name="android:textColor">#fff</item> 
     <item name="textColor">#fff</item> 
     <item name="android:textStyle">bold</item> 
     <item name="textStyle">bold</item> 
     <item name="android:textSize">32sp</item> 
     <item name="textSize">32sp</item> 
</style> 
+0

Das löste meine noob Fehler, danke! –

+0

Gern geschehen. – Kanth

+0

@Appu es gibt eine Möglichkeit, dies für Anwendungen mit min SDK Version 8 zu verwenden? – pepela

0

Dies:

<item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> 

ist für die Standard-ActionBar, beachten Sie die 'Android:'. Sie haben es stylen wie folgt aus:

 <resources> 
    <style name="Theme.MyAppTheme" parent="Theme.Sherlock"> 
     <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> 
     <item name="actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> 

    </style> 

    <style name="Theme.MyAppTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
     <item name="android:background">#222222</item> 
     <item name="android:height">64dip</item> 
     <item name="background">#222222</item> 
     <item name="height">64dip</item> 
     <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> 
     <item name="titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> 
    </style> 

    <style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title"> 
     <item name="android:textColor">#fff</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">32sp</item> 
     <item name="textColor">#fff</item> 
     <item name="textStyle">bold</item> 
     <item name="textSize">32sp</item> 
    </style> 
Verwandte Themen