相关疑难解决方法(0)

如何使用新的 Android-X API 从当前的 PreferenceFragment 打开一个新的 PreferenceFragment?

背景

在以前版本的支持库中,我们可以使用标题来拥有一个设置的主菜单屏幕,每个屏幕都会打开一个新的设置屏幕(片段)。

问题

现在标题消失了(如这里所写)一段时间,我认为在 android-x 上情况变得更糟:

你会注意到这里没有的一件事是首选项标题,你是完全正确的。然而,这并不意味着单个偏好列表需要跨越 10 英寸平板电脑屏幕。相反,您的 Activity 可以实现 OnPreferenceStartFragmentCallback ( link ) 以使用 app:fragment 属性或 OnPreferenceStartScreenCallback ( link ) 处理首选项以处理 PreferenceScreen 首选项。这允许您在一个窗格中构造“标题”样式 PreferenceFragmentCompat 并使用这些回调替换第二个窗格,而无需在两种不同类型的 XML 文件中工作。

问题是,我没有在新的 android-x API 上使用这些。

每个片段都有自己的首选项 XML 树(使用setPreferencesFromResourceonCreatePreferences),但我提出的每个解决方案要么什么都不做,要么崩溃。

以直观的方式来说,这就是我想要实现的目标:

在此处输入图片说明

由于有多个子设置屏幕,将所有子设置屏幕的所有首选项都放在主设置屏幕的一个 XML 文件中会非常麻烦。

我试过的

我唯一成功的是使用 PreferenceScreen 来保存应该显示的子屏幕的首选项。

这是此类事情的工作代码(可在此处获得项目):

首选项.xml

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="Demo">

    <PreferenceScreen
        android:key="screen_preference" android:summary="Shows another screen of preferences"
        android:title="Screen preferenc">

        <CheckBoxPreference
            android:key="next_screen_checkbox_preference"
            android:summary="Preference that is on the next screen but same hierarchy"
            android:title="Toggle preference"/> …
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-fragments preferencefragment androidx

8
推荐指数
2
解决办法
6841
查看次数