背景
谷歌过去不支持向后兼容首选项看起来像 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'
问题
是否有新 API 的教程/示例?我在哪里可以阅读更多关于它的信息?
新 API 究竟涵盖了哪些内容?
它会支持所有 Android 版本的 Material Design 风格吗?我已经在GB版本上测试过,但似乎效果不佳...
似乎有 PreferenceFragmentCompat。它与 PreferenceFragment 大致相同吗?即使对于 pre-Honeycomb 也能很好地工作吗?
有哪些与偏好管理相关的缺失功能?
如何使首选项及其对话框具有材料风格?