4

アプリケーションにpreferenceActivityがあり、次のテーマを使用して設定スタイルを設定しようとしました:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="MyPreferenceTheme" parent="android:Theme.Translucent">
    <item name="android:preferenceStyle">@style/MyPreference</item>
    <item name="android:windowBackground">@color/transparent_black</item>
</style>

<style name="MyPreference" parent="@android:style/Preference">
    <item name="android:layout">@layout/preference</item>
</style>

<color name="transparent_black">#BB000000</color>

背景が正しく色付けされているため、テーマが読み込まれていることがわかります。ただし、私のカスタムpreferenceLayout(res/layout/preference.xml)は、preferenceActivity内のどの設定にも適用されていません。

これは、設定のテーマ設定を実現する正しい方法ですか? または私は何かを逃しましたか?前もって感謝します :)

4

2 に答える 2

4

オーバーライドしようとしているスタイルが適用されていないように見えるため、parent="android:style/Preference" を使用しないのが最善であることがわかりました。使用しているレイアウトのスタイルを設定し (@layout/preference)、android:style/Preference からの継承を削除します。私が同じことをしなければならなかったとき、それは私にとってうまくいきました。

したがって、次のようになります。

<style name="MyPreference">
    <item name="android:layout">@layout/preference</item>
</style>

幸運を!

于 2011-07-29T18:05:42.660 に答える
0

それはバグです。この問題を参照してください。

すべての PreferenceScreen に ID を割り当てることで「修正」できます。次に、すべてに対してこれを行います。

((PreferenceScreen) preferenceScreen).getDialog().getWindow().setBackgroundDrawable(drawable);

頑張れ
トム

于 2011-02-28T06:49:55.497 に答える