如何使用新支持库23上提供的首选项的新API

and*_*per 5 android preferenceactivity android-support-library preferencefragment material-design

背景

谷歌已经不支持向后兼容性首选项看起来像全息/材料在过去,这就是为什么我做了我自己的图书馆这个(在这里,万一有人需要它),但现在我认为,谷歌提供了一些那种对它的支持,在这里.

问题

目前,我看不到任何教程或样本.我想知道这个新API的功能,但我不能.

我试过的

我按照网站上的说明做了,并且它甚至适用于Android GB,但这是我得到的:

在此输入图像描述

如您所见,类别标题是GB样式而不是材料设计,您看不到的是点击项目将具有与GB相同的效果.在首选项中创建的对话框的某些元素也是如此.几乎所有东西都是本土风格.在3.x-4.x版本的Android上也会出现同样的情况.

这是代码:

styles.xml

<style name="AppTheme" parent="Theme.AppCompat">
    <!-- Customize your theme here. -->.
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
    <item name="colorPrimary">#FF0288D1</item>
</style>
Run Code Online (Sandbox Code Playgroud)

主要活动

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar _toolbar = (Toolbar) findViewById(R.id.activity_app_list__toolbar);
        //
        setSupportActionBar(_toolbar);
        getSupportFragmentManager().beginTransaction().replace(R.id.container,
                new SettingsFragment()).commit();
    }

}
Run Code Online (Sandbox Code Playgroud)

SettingsFragment.java

public class SettingsFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle bundle, String s) {
        addPreferencesFromResource(R.xml.preferences);
    }
}
Run Code Online (Sandbox Code Playgroud)

的preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
        android:title="PreferenceCategory A">

        <CheckBoxPreference
            android:key="checkbox_preference"
            android:title="title_checkbox_preference"
            android:summary="summary_checkbox_preference" />

    </PreferenceCategory>

    <PreferenceCategory
        android:title="PreferenceCategory B">

        <EditTextPreference
            android:key="edittext_preference"
            android:title="title_edittext_preference"
            android:summary="summary_edittext_preference"
            android:dialogTitle="dialog_title_edittext_preference" />

    </PreferenceCategory>

</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

的build.gradle

...
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'
Run Code Online (Sandbox Code Playgroud)

问题

  1. 是否有新API的教程/示例?我在哪里可以阅读更多相关信息?

  2. 新API涵盖的内容是什么?

  3. 它是否支持所有Android版本的Material设计风格?我已经在GB版本上测试了它,但它看起来效果不好......

  4. 似乎有PreferenceFragmentCompat.它与PreferenceFragment大致相同吗?即使对于蜂窝前蜂也能正常工作吗?

  5. 哪些缺少的功能与偏好管理有关?

  6. 如何使首选项及其对话框具有实质风格?