我的应用程序中有一个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中的任何首选项。
这是实现主流偏好的正确方法吗?还是我错过了什么? 在此先感谢:)
答案 0 :(得分:4)
我发现最好不要使用parent =“android:style / Preference”,因为它似乎不适用我试图用它覆盖它的样式。设置您正在使用的布局样式(@ layout / preference)并删除android:style / Preference的继承。当我必须做同样的事情时,它对我有用。
所以它应该是:
<style name="MyPreference">
<item name="android:layout">@layout/preference</item>
</style>
祝你好运!
答案 1 :(得分:0)
这是一个错误。请参阅this issue。
您可以通过为每个PreferenceScreen分配ID来“修复”它。然后,你为每一个做到这一点:
((PreferenceScreen) preferenceScreen).getDialog().getWindow().setBackgroundDrawable(drawable);
祝你好运
汤姆