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 回答