【发布时间】:2016-02-04 16:31:17
【问题描述】:
棒棒糖上的 android 系统偏好设置屏幕似乎正在使用类似于“卡片布局”的布局。
我正在尝试为我的应用程序获得相同的外观,但无法看到他们如何使用默认的 PreferenceFragment 实现它。谁能给我解释一下,我怎样才能达到同样的效果而不必写我自己的偏好?
请注意,我已经看过并阅读了这些问题,但它们没有提供合适的答案:
-
How to achieve preference category cards like Android System Settings(答案只是展示了如何创建一个看起来相似的布局。与
PreferenceFragment无关) -
Android Lollipop Sections Separator/Divider(参考偏好截图,但 OP 似乎不想将其应用于
PreferenceFragment)
如果感兴趣,我当前的偏好 xml 如下所示:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto">
<PreferenceCategory android:title="@string/preferences_title_general">
<Preference
android:key="Prefs.Delete.Row.Token"
android:summary="@string/preferences_delete_row_token_summary"
android:title="@string/preferences_delete_row_token_title"/>
<Preference
android:key="Prefs.Delete.Cell.Token"
android:summary="@string/preferences_delete_cell_token_summary"
android:title="@string/preferences_delete_cell_token_title"/>
<Preference
android:key="Prefs.Null.Token"
android:summary="@string/preferences_null_token_summary"
android:title="@string/preferences_null_token_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/preferences_title_appearance">
<SwitchPreference
android:dialogTitle="@string/preferences_theme_title"
android:key="Prefs.Appearance.Theme"
android:summaryOff="@string/preferences_theme_summary_off"
android:summaryOn="@string/preferences_theme_summary_on"
android:switchTextOff="@string/general_no"
android:switchTextOn="@string/general_yes"
android:title="@string/preferences_theme_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/preferences_title_misc">
<SwitchPreference
android:dialogTitle="@string/preferences_read_back_title"
android:key="Prefs.Voice.Feedback"
android:switchTextOff="@string/general_no"
android:switchTextOn="@string/general_yes"
android:title="@string/preferences_read_back_title"/>
<Preference
android:key="Prefs.Export.Barcode.Properties"
android:title="@string/preferences_export_title"
android:summary="@string/preferences_export_summary"/>
<Preference
android:key="Prefs.Show.Eula"
android:title="@string/preferences_eula_title"
android:summary="@string/preferences_eula_summary"/>
</PreferenceCategory>
</PreferenceScreen>
我扩展 PreferenceFragment 并通过加载 xml
addPreferencesFromResource(R.xml.prefs);
【问题讨论】:
-
手头没有任何 api >20 设备,您是否尝试使用设备监视器查看它 -> 转储视图层次结构?
-
@DavidMedenjak 这样做给了我布局的层次结构。现在我该怎么办?正如我所说,我不想在正常布局中重现布局结构,而是想让我现有的
PreferenceFragment看起来一样。
标签: android layout material-design android-preferences