I have a preference screen for my application and in the manifest I have given it a theme using:
android:theme="@android:style/Theme.Light.WallpaperSettings"
However when I nest another preference screen inside this one such as:
<?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>
The nested preference screen loses the theme of the parent. How can this be prevented? Thanks in advance.
This is a bug in android see the Bug Report.
Just ran into this problem.
While the suggestion in the bug report is to create your own custom style and set the listview background, we found it easier to create a separate activity for each preference screen. This allowed us to set the Theme.Light to each screen with no issue.
Not a great fix, but it works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With