Android 首选项不以编程方式显示在子屏幕中

Android 首选项不以编程方式显示在子屏幕中,android,preferences,preferencefragment,Android,Preferences,Preferencefragment,我遵循了可能的解决方案,但这只适用于根首选项屏幕。我正在使用v7支持首选项屏幕和首选项FragmentCompat preference.xml <android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <android.support.v7.preference.PreferenceScreen

我遵循了可能的解决方案,但这只适用于根首选项屏幕。我正在使用v7支持首选项屏幕和首选项FragmentCompat

preference.xml

<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
      <android.support.v7.preference.PreferenceScreen
            android:key="pref_key_r"
            android:persistent="false"
            android:summary="@string/a"
            android:title="@string/pref_title_r">
        </android.support.v7.preference.PreferenceScreen>
</android.support.v7.preference.PreferenceScreen>

我还缺少什么

这似乎是上述首选项设计库中未解决的问题

对于链接中提到的这个问题,有一些难看的解决方法,但我个人将坚持使用旧的android.preference.PreferenceFragment,直到这个问题得到解决,因为我的首选屏幕依赖于子屏幕


编辑:是此问题的另一种解决方案。

尝试在
添加首选项后的
onCreatePreferences
函数中添加您的
首选项。它仍然不起作用。
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        addPreferencesFromResource(R.xml.preferences);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        PreferenceScreen preferenceScreen = (PreferenceScreen) getPreferenceScreen().findPreference("pref_key_r");
        Preference preference = new Preference(preferenceScreen.getContext());

        preference.setKey("pref_key_sp");
        preference.setTitle(R.string.sp);
        preferenceScreen.addPreference(preference);

}