5

sherlock アクション バーをカスタマイズしようとしていますが、style.xml でコーディングしたものが認識されません。

私のマニフェストファイルでは:

 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();

 ... }

アクションバーの表示に問題はありませんが、同じように style.xml でコーディングされたカスタマイズは表示されません。誰か助けてもらえますか? 感謝している。

4

3 に答える 3

8

これは、マニフェスト ファイルに同じ元のスタイルを適用しているためでandroid:theme="@style/Theme.Sherlock"、違いはありません。Theme.MyAppTheme親を として、name でカスタム スタイルを準備しましたTheme.Sherlock。したがって、カスタマイズしたスタイル (Theme.MyAppTheme) をマニフェスト ファイルで次のように宣言する必要がありますandroid:theme="@style/Theme.MyAppTheme"。他の回答者も言ったように、以下のようにAndroidプレフィックス属性なしで含める必要があります。お役に立てれば。あなたもこれを参照することができます。

 <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>
于 2013-01-02T03:14:31.310 に答える
3

これを使用すると、独自のスタイルを作成する必要はありません

アクションバースタイルジェネレータ

于 2013-01-02T04:10:22.497 に答える
0

これ:

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

はデフォルトの ActionBar 用です。「android:」に注意してください。次のようにスタイルする必要があります。

     <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>
于 2013-01-02T02:12:59.087 に答える