2

私は Android 開発に不慣れですが、「res/values/styles.xml」で XML を使用してアプリのスタイルを設定する方法を理解するのは本当に難しいと感じました。

私が見つけたすべてのチュートリアルで、タグで「親」フィールドを宣言することでほとんどのスタイルを継承し、必要なものを変更できるようです。

ただし、その方法で継承されるスタイルのほとんどは非公開であり、Android アプリのスタイリングに関する最近の制限により、非公開スタイルの継承はほとんど不可能になっています。

「ほぼ」と言ったのは、Android SDK の「Styles.xml」からの多くのコピー アンド ペーストを含むソリューションを見つけたからです。StackOverflow でここにある明確な例は次のとおりです。

http://android-argentina.blogspot.it/2011/08/error-retriving-parent-for-item.html

これらのソリューションを適用すると、私の単純な xml:

<style name="MyActionBar" parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#FF0000</item>
    </style>

なりました:

   <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar">

        <!--copied from Widget.Holo.Light.ActionBar.Solid.Inverse -->
        <item name="android:titleTextStyle">
@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse
</item>
<item name="android:subtitleTextStyle">
@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse
</item>
<item name="android:background">@android:drawable/ab_solid_dark_holo</item>
<item name="android:backgroundStacked">@android:drawable/ab_stacked_solid_dark_holo</item>
<item name="android:backgroundSplit">@android:drawable/ab_bottom_solid_inverse_holo</item>
<item name="android:divider">@android:drawable/list_divider_holo_dark</item>
<item name="android:progressBarStyle">@android:style/Widget.Holo.ProgressBar.Horizontal</item>
<item name="android:indeterminateProgressStyle">@android:style/Widget.Holo.ProgressBar</item>
<item name="android:progressBarPadding">32dip</item>
<item name="android:itemPadding">8dip</item>

        <!-- custom items -->   
        <item name="android:background">#FF0000</item>
    </style>

この時点で、「@android:drawable/ab_bottom_solid_inverse_holo」のようなリソースは公開されておらず、他のリソースはプロジェクト内で気に入ることができず (「@android:drawable/SOMETHING」であっても)、コンパイル エラーが発生するため、このソリューションは、インターネットのほぼどこにでもありますが、問題はまったく解決しません。

基本スタイルをすべて失うことなく、アクション バーの背景を変更したかっただけです。簡単でスマートな方法が必要です。

だから助けてください、私が考えていないばかげた何かがあるに違いありません。

(私の悪い英語でごめんなさい)

4

1 に答える 1