【发布时间】:2016-10-25 19:47:37
【问题描述】:
我正在将我的应用升级到基于 AppCompat v21 的 Android 5.0 Lollipop 设计。
一切正常,但我在首选项屏幕上遇到了问题,其中复选框不可见。它们在屏幕上,当整个部分被触摸时突出显示时,我可以看到它们。功能正常,偏好更新成功。
应用程序中的其他任何地方都显示复选框,没有任何问题。
此外,它在 Android 2.3 上也能正常运行。
第二个和第三个设置中缺少复选框:
触摸行时可见复选框:
首选项及其代码非常基本,没有添加任何自定义内容。
我的带有首选项的 xml 文件如下所示(仅复制了复选框):
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="show_romaji"
android:title="@string/preferences_romaji_title"
android:summary="@string/preferences_romaji_explanation"
android:defaultValue="true"
android:persistent="true" />
<CheckBoxPreference
android:key="send_statistics"
android:title="@string/preferences_statistics_title"
android:summary="@string/preferences_statistics_explanation"
android:defaultValue="true"
android:persistent="true" />
</PreferenceScreen>
偏好活动:
public class PreferenceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SharedPreferenceFragment())
.commit();
}
}
偏好片段:
public class SharedPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
我正在使用一个几乎没有定义的主题:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.JlptVocabulary" parent="Theme.AppCompat">
<!-- Set AppCompat’s color theming attrs -->
<item name="colorPrimary">#ffe91e63</item>
<item name="colorPrimaryDark">@color/black</item>
<!-- The rest of your attributes -->
<item name="android:windowBackground">@color/backgroundBlack</item>
</style>
</resources>
我被这个问题困住了,在进行了一些研究和实验后,我还没有找到解决方案。有人知道吗?
【问题讨论】:
-
我在这里找到了一个很好的解决方案:stackoverflow.com/a/27713090/1245231
标签: android checkbox android-5.0-lollipop preferenceactivity