我已将支持库中的 AppCompat 库升级到 v21。使用深色主题 (@style/Theme.AppCompat) 时,SettingsActivity 中的复选框是黑色的,因此您甚至看不到它们。
这是更新前的:
这是更新后的:
应用中其他地方的复选框都没有问题。如何修复 SettingsActivity 中的问题?
最佳答案
我使用 this page 上的解决方案解决了这个问题通过将代码复制到我的项目中来创建兼容的 PreferenceFragment 类。然后,我用一个继承自 ActionBarActivity 的类替换了我以前的 PreferenceActivity,并实例化了一个从新的 PreferenceCompatFragment 类派生的 Fragment 类。这现在可以很好地显示我的偏好,带有预期颜色的操作栏以及正确重音的复选框。这是我的新设置 Activity 的代码:
public class SettingsFragActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout frame = new FrameLayout(this);
frame.setId(R.id.content);
setContentView(frame);
this.getSupportFragmentManager().beginTransaction()
.replace(R.id.content, new SettingsFragment (), null).commit();
}
public static class SettingsFragment extends PreferenceCompatFragment {
@Override
public void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
addPreferencesFromResource(R.xml.prefs);
}
}
请注意,addPreferencesFromResource 属于自定义 PreferenceFragment 类。
关于Android AppCompat 深色主题设置复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091845/