嵌套的偏好屏幕失去了主题

时间:2010-05-02 21:11:18

标签: android preferences preferencescreen

我的应用程序有一个首选项屏幕,在清单中我使用了一个主题:

android:theme="@android:style/Theme.Light.WallpaperSettings"

然而,当我将另一个首选项屏幕嵌入其中时,例如:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/setting_title"
    android:key="...">

    <PreferenceCategory
    android:title="@string/title_themes"
    >

    <PreferenceScreen
    android:title="@string/title_themes_opt"
    >

        <ListPreference
    android:key="Setting_BG"
    android:title="@string/setting_bg"
    android:summary="@string/setting_bg_summary"
    android:entries="@array/bg_titles"
    android:defaultValue="0"
    android:entryValues="@array/bg_values" />
    </PreferenceScreen>

    </PreferenceCategory>

</PreferenceScreen>

嵌套首选项屏幕会丢失父主题。如何防止这种情况?提前谢谢。

2 个答案:

答案 0 :(得分:6)

这是android中的一个错误,请参阅Bug Report

答案 1 :(得分:2)

刚遇到这个问题。

虽然错误报告中的建议是创建自己的自定义样式并设置列表视图背景,但我们发现为每个首选项屏幕创建单独的活动更容易。这使我们可以将Theme.Light设置为每个屏幕而没有任何问题。

不是很好的修复,但它确实有效。