嵌套的首选项屏幕失去主题
我的应用程序有一个首选项屏幕,并且在清单中我使用以下方式为其指定了一个主题:
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>
嵌套的首选项屏幕会丢失父级的主题。如何防止这种情况发生?提前致谢。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是 Android 中的一个错误,请参阅 错误报告。
This is a bug in android see the Bug Report.
刚刚遇到这个问题。
虽然错误报告中的建议是创建您自己的自定义样式并设置列表视图背景,但我们发现为每个首选项屏幕创建单独的活动更容易。这使我们能够毫无问题地为每个屏幕设置 Theme.Light。
这不是一个很好的解决办法,但它确实有效。
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.