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

时间:2015-09-04 10:06:12

标签: android material-design android-support-library preferenceactivity preferencefragment

背景

Google过去不支持向后兼容性偏好设置看起来像Holo / Material,这就是为什么我为此创建了自己的库(here,以防有人想要它),但现在我认为Google已经为它提供了某种支持,here

问题

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

我尝试了什么

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

enter image description here

正如您所看到的,类别标题是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>

MainActivity

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();
    }

}

SettingsFragment.java

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

的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>

的build.gradle

...
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'

问题

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

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

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

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

  5. 哪些缺少的功能与首选项管理相关?

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

0 个答案:

没有答案