2013-01-02 8 views
5

私はsherlockのアクションバーをカスタマイズしようとしていますが、私のstyle.xmlにコードするものは何も認識されません。Styling ActionBar Sherlock

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

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

私はこのように私アクションバーを呼んでいる:

public class MainActivity extends SherlockActivity { 

com.actionbarsherlock.app.ActionBar actionbar; 

... 

actionbar = getSupportActionBar(); 

... } 

あり交流を見せても問題ありませんstylebarでコード化されたカスタマイズは同じではありませんが、誰かが私を助けることができますか?感謝している。

+0

独自のスタイルを作成する必要はありません! http://stackoverflow.com/questions/19623805/actionbarsherlock-stacked-action-bar-styling-issue – toobsco42

答えて

8

にです。カスタムスタイルを名前Theme.MyAppThemeで作成し、親をTheme.Sherlockとしています。したがって、マニフェストファイルのカスタマイズされたスタイル(Theme.MyAppTheme)をandroid:theme="@style/Theme.MyAppTheme"のように宣言する必要があります。他の回答者も言ったように、あまりにも以下のようなアンドロイドプレフィックス属性を含まなくてもいいです。お役に立てれば。 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

それは私のnoobエラーを解決しました、ありがとう! –

+0

ようこそ。 – Kanth

+0

@Appuそこには最小sdkバージョン8のアプリケーションでこれを使う方法がありますか? – pepela

0

この:

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

は気づく、デフォルトのアクションバーのためには 'アンドロイド'。 あなたはこのようにそれをスタイルを持っている:あなたはどんな違いがありませんマニフェストファイルandroid:theme="@style/Theme.Sherlock"に同じオリジナルのスタイルを適用しているので、

 <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> 
関連する問題