我正在尝试使用新的 Preference v14 Support 库。为了给偏好一种材料风格,我在我的活动中使用以下风格:
<style name="PreferenceTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
</style>
这很好用。我的问题是,当我在运行时添加新首选项时,它们会使用旧主题膨胀。这是结果的屏幕截图:
如您所见,通过 XML 添加的第一个首选项具有新的 Material 样式,而其他首选项则没有。
您对如何解决问题有任何提示吗?
编辑 这是我用来在运行时添加首选项的代码示例:
import android.support.v7.preference.ListPreference;
for (...) {
final ListPreference p = new ListPreference(getActivity());
p.setTitle(name);
p.setSummary(langname);
p.setEntryValues(langEntryValues);
p.setEntries(langDisplayValues);
p.setDialogTitle(R.string.select_language);
category.addPreference(p);
}
PS:同样的行为发生在android.support.v7.preference.Preference