Android首选项屏幕主题不起作用

如何解决Android首选项屏幕主题不起作用

我正在使用应用程序中的导航架构组件设置Androidx首选项屏幕。由于某种原因,Android“首选项”屏幕看起来像这样

enter image description here

当我从Android Studio主题切换器切换主题时,它看起来很好。

enter image description here

enter image description here

这是我的首选项XML布局代码

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:key="application_settings"
app:singleLineTitle="true">

<PreferenceCategory
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:iconSpaceReserved="false"
    app:singleLineTitle="true"
    app:title="@string/display_language_header">

    <ListPreference
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:entries="@array/Languages"
        app:entryValues="@array/Languages_Values"
        app:icon="@drawable/ic_language"
        app:key="application_language"
        app:singleLineTitle="true"
        app:summary="@string/default_application_language"
        app:title="@string/application_settings_language" />

</PreferenceCategory>

<PreferenceCategory
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    app:iconSpaceReserved="false"
    app:singleLineTitle="true"
    app:title="@string/normal_settings_title">

    <SwitchPreferenceCompat
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:icon="@drawable/ic_sound"
        app:key="sound_setting"
        app:singleLineTitle="true"
        app:summary="@string/sound_settings_summary"
        app:title="@string/sound_settings_title" />

    <SwitchPreferenceCompat
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:summary="@string/vibration_settings_summary"
        android:title="@string/vibration_settings_title"
        app:icon="@drawable/ic_vibrate"
        app:key="vibration_setting"
        app:singleLineTitle="true" />

    <SwitchPreferenceCompat
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:summary="@string/auto_copy_to_clip_board_settings_summary"
        android:title="@string/auto_copy_to_clipboard_settings_title"
        app:icon="@drawable/ic_copy"
        app:key="copy_to_clip_board_setting"
        app:singleLineTitle="true" />

    <SwitchPreferenceCompat
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:summary="@string/auto_web_search_settings_summary"
        android:title="@string/auto_web_search_settings_title"
        app:icon="@drawable/ic_search"
        app:key="auto_web_search_setting"
        app:singleLineTitle="true" />

    <SwitchPreferenceCompat
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:summary="@string/save_history_settings_summary"
        android:title="@string/save_history_settings_title"
        app:icon="@drawable/ic_save"
        app:key="save_history_setting"
        app:singleLineTitle="true" />
</PreferenceCategory>


<PreferenceCategory
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    app:iconSpaceReserved="false"
    app:singleLineTitle="true"
    app:title="@string/application_settings_title">

    <Preference
        android:id="@+id/privacy_policy"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:key="privacy_policy"
        android:summary="@string/privacy_policy_settings_summary"
        android:title="@string/privacy_policy_settings_title"
        app:singleLineTitle="true" />


    <Preference
        android:id="@+id/share_with_friends"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:key="share_with_friends"
        android:summary="@string/share_with_friends_summary"
        android:title="@string/share_with_friends_title"
        app:singleLineTitle="true" />


    <Preference
        android:id="@+id/rate_us"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:key="rate_us"
        android:summary="@string/rate_us_summary"
        android:title="@string/rate_us_summary"
        app:singleLineTitle="true" />

    <Preference
        android:id="@+id/delete_history"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:key="delete_history"
        android:summary="@string/delete_history_summary"
        android:title="@string/delete_history_title"
        app:singleLineTitle="true" />


</PreferenceCategory>

我的申请样式

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:colorSecondary">@color/colorPrimary</item>
    <item name="fontFamily">@font/regular</item>
    <item name="android:orientation">vertical</item>
</style>

我尝试提供偏好屏幕硬编码的主题,例如android:theme =“ @ style / AppTheme”,但它也不起作用。我正在使用导航控制器通过Bottom App Bar调用Preference Fragment。请帮助我了解我在做什么错了吗?

解决方法

我找到了解决此问题的方法。我在Android清单中有android:orientation,这导致“偏好设置”屏幕采用垂直方向而不是水平方向。现在,它看起来像一个普通的首选项屏幕。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?