2013-01-02 17 views
5

Próbuję dostosować mój pasek działań sherlock, ale nic, co mogę zakodować w moim style.xml jest rozpoznawany.Stylizacja ActionBar Sherlock

W moim pliku manifestu:

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

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

Dzwonię mój actionbar ten sposób:

public class MainActivity extends SherlockActivity { 

com.actionbarsherlock.app.ActionBar actionbar; 

... 

actionbar = getSupportActionBar(); 

... } 

istnieje nie ma problemu z wyświetlaniem ac pasek stanu, ale to samo nie pokazuje żadnych dostosowań zakodowanych w pliku style.xml, czy ktoś może mi pomóc? Wdzięczny.

+0

robie coś podobnego tutaj !!! http://stackoverflow.com/questions/19623805/actionbarsherlock-stacked-action-bar-styling-issue – toobsco42

Odpowiedz

8

To dlatego, że stosując ten sam oryginalny styl w pliku manifestu android:theme="@style/Theme.Sherlock" który nie robi żadnej różnicy. Przygotowałeś niestandardowy styl o nazwie Theme.MyAppTheme, posiadający rodzica jako Theme.Sherlock. Tak więc, musisz zadeklarować swój niestandardowy styl (Theme.MyAppTheme) w pliku manifestu, np. android:theme="@style/Theme.MyAppTheme". Nawet ty też musisz dołączyć bez atrybutu prefiksu Android, tak jak to powiedział drugi rozmówca. Mam nadzieję że to pomoże. Nawet Ty możesz polecić także this.

<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

To rozwiązało mój błąd noob, dziękuję! –

+0

Nie ma za co. – Kanth

+0

@Appu to sposób, aby użyć tego dla aplikacji z min. Sdk wersji 8? – pepela

0

to:

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

jest dla domyślnego ActionBar, zauważy 'androida:'. Trzeba projektować je tak:

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