Android偏好子屏幕

时间:2016-02-24 11:18:34

标签: android toolbar android-preferences

我使用PreferenceFragment来扩充xml的偏好设置。在我的xml中,我有一个首选子屏幕。单击此首选项时,将显示新的首选项屏幕。要做到这一点,正如谷歌文档所说,我已经在我的xml文件中声明了另一个首选项屏幕,如下所示:

 <PreferenceCategory android:title="@string/pref_info_section">

    <PreferenceScreen
        android:key="LegalPref"
        android:title="@string/legal"
        android:persistent="false">

        <Preference
            android:key="PolicyPref"
            android:title="@string/policy">               
        </Preference>

        <Preference
            android:key="OpenSourcePref"
            android:title="@string/open_source">                
        </Preference>

    </PreferenceScreen>

</PreferenceCategory>

问题在于,当我单击此首选项并显示新屏幕时,我的工具栏将消失,并且仅显示辅助首选项选项。包含此首选项片段的活动使用Theme.AppCompat.Light首先显示工具栏,但是当我单击首选项子屏幕(其自动显示其他首选项选项而不创建新活动)时,工具栏将消失。

1 个答案:

答案 0 :(得分:0)

不要使用首选项子屏幕,而是执行以下操作:

  1. 将您想要的 Fragment 设计为子屏幕,其结构与您的主 Fragment 大致相同。
public  class SubFragment extends PreferenceFragment {
    ...
}
  1. 在您点击打开子屏幕的首选项中,写入属性:
<Preference
    android:key="to_click_on"
    app:fragment="com.packagename.SubFragment"
    ...
    />

仅此一项就可以在不隐藏设置活动的工具栏的情况下工作。 谷歌文档中也写了同样的内容。 Splitting into subscreens Link to the documentation