5

背景

谷歌过去不支持向后兼容首选项看起来像 Holo/Material,这就是为什么我为此创建了自己的库(在这里,以防有人想要它),但现在我认为谷歌已经提供了一些有点支持它,here

问题

目前,我看不到任何教程或示例。我想知道这个新 API 有哪些功能,但我不知道。

我试过的

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

在此处输入图像描述

可以看到,分类标题是GB style而不是material design,而你看不到的是点击item会和GB一样的效果。在首选项中创建的某些对话框元素也是如此。几乎所有东西都是本土风格。同样的事情也发生在 3.x-4.x 版本的 Android 上。

这是代码:

样式.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>

主要活动

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

首选项.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>

构建.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 Design 风格吗?我已经在GB版本上测试过,但似乎效果不佳...

  4. 似乎有 PreferenceFragmentCompat。它与 PreferenceFragment 大致相同吗?即使对于 pre-Honeycomb 也能很好地工作吗?

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

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

4

0 回答 0