2017-05-28 1 views
0

私はサポートパッケージなしで環境設定のダイアログテーマをカスタマイズすることができました。私はサポートパッケージに切り替えたので(私の好みの断片は今PreferencesFragmentの代わりにPreferenceFragmentCompatを伸ばしています)私は色を変えることができません。サポートパッケージの環境設定ダイアログの色を変更するには?

これまでのところ、私は私のテーマに本を追加しました:

<item name="preferenceTheme"> 
    @style/MyPreferenceTheme 
</item> 
<item name="android:dialogTheme">@style/DialogStyle</item> 
<item name="android:alertDialogTheme">@style/DialogStyle</item> 
<item name="android:dialogPreferenceStyle">@style/DialogStyle</item> 

// ...

<style name="MyPreferenceTheme" parent="PreferenceThemeOverlay.v14.Material"> 
<!--<style name="MyPreferenceTheme">--> 
    <item name="colorAccent">@android:color/white</item> 
    <item name="android:background">@color/bg0</item> 
    <item name="android:textColor">@color/fg0</item> 

    <item name="android:windowBackground">@color/bg0</item> 
    <item name="android:windowTitleStyle">@style/WindowTitleStyle</item> 

    <item name="android:keyTextColor">@color/fg0</item> 
    <item name="android:textColorAlertDialogListItem">@color/fg0</item> 
    <item name="android:textColorPrimary">@color/fg0</item> 
    <item name="android:textColorSecondary">@color/fg0</item> 
    <item name="android:textColorTertiary">@color/fg0</item> 

    <item name="colorControlNormal">@color/fg0</item> 
    <item name="colorControlActivated">@color/fg0</item> 
    <item name="colorControlHighlight">@color/fg0</item> 
</style> 


<style name="DialogStyle" parent="Theme.AppCompat.Dialog"> 
    <item name="colorAccent">@android:color/white</item> 
    <item name="android:background">@color/bg0</item> 
    <item name="android:textColor">@color/fg0</item> 

    <item name="android:windowTitleStyle">@style/WindowTitleStyle</item> 
    <item name="android:windowBackground">@color/bg0</item> 

    <item name="android:keyTextColor">@color/fg0</item> 
    <item name="android:textColorAlertDialogListItem">@color/fg0</item> 
    <item name="android:textColorPrimary">@color/fg0</item> 
    <item name="android:textColorSecondary">@color/fg0</item> 
    <item name="android:textColorTertiary">@color/fg0</item> 

    <item name="colorControlNormal">@color/fg0</item> 
    <item name="colorControlActivated">@color/fg0</item> 
    <item name="colorControlHighlight">@color/fg0</item> 
</style> 

<style name="WindowTitleStyle" parent="TextAppearance.AppCompat.Title"> 
    <item name="android:textColor">@color/fg0</item> 
</style> 

私が欲しいのは、黒の背景と白のテキスト/ウィジェットです。 fg0は白で、bg0は黒です。しかし、ダイアログには白いbgと黒いテキストが表示されます。タイトルは見えません(私はそれが正しいと思います)。

私はまた、ダイアログのカスタムレイアウトを使用しようとしました。setDialogLayoutResource - Android用のリソースをコピーして色を変えたいと思っていました。しかし、私はAndroidリソースがどこにあるのか分かりません。環境設定のソースコードには、https://android.googlesource.com/platform/frameworks/support/+/master/v7/appcompat/res/layout/https://android.googlesource.com/platform/frameworks/support/+/master/v7/preference/res/layout/が見つかった以外は、レイアウトファイルへの明示的な参照はありませんが、どのように認識されていますか?

テーマを調整するにはどうすればよいですか?この単純な作業はそれほど複雑ではありません!

また、「設定ダイアログの背景色を黒に設定したい」というパスが、XMLに設定する必要のある正確な属性になっていることを説明してください。どこで見つけるのですか:1.これはどのダイアログですか。2.どの属性を持っていますか?3.これらの属性を設定することの効果は何ですか。 (できればソースコードを掘り下げることなく)。

文書はソースを参照するように指示します。 R.attrでは「ダイアログ」や「設定」を含む名前を検索する以外は何をするのか分かりません。私がこれまでに試した属性のどれも助けなかった。

関連性:誰も使用しません(またはrestyle)PreferenceFragmentCompat?これについての情報を見つけるのが難しく、誰にも分からないようです。あなたは代わりに何を使用しますか? (これらの質問はコメントのためのものです)。

答えて

0

私は問題を発見:私は

<item name="android:alertDialogTheme">@style/DialogStyle</item> 

を使用していた

、それはAndroidのメーカーは、これらのエラーをキャッチしていないこと、特に、

<item name="alertDialogTheme">@style/DialogStyle</item> 

非常に刺激されている必要がありますし、オートコンプリートもandroid:alertDialogThemeです。

関連する問題