gpt4 book ai didi

Android 5.0 - 首选项中的复选框不可见

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:00 25 4
gpt4 key购买 nike

我正在将我的应用程序升级到基于 AppCompat v21 的 Android 5.0 Lollipop 设计。

一切都运行良好,但我在首选项屏幕上遇到了一个问题,其中的复选框不可见。它们在屏幕上,当整个部分被触摸时突出显示时我可以看到它们。功能正常,首选项已成功更新。

应用程序中其他地方的复选框显示没有任何问题。

此外,它在 Android 2.3 上也能正常工作。

第二个和第三个设置中缺少复选框:

enter image description here

触摸行时复选框可见:

enter image description here

首选项及其代码非常基本,没有添加任何自定义内容。

我的带有首选项的 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>

偏好 Activity :

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

}

首选项 fragment :

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>

我被这个问题困住了,在做了一些研究和实验后一直没能找到解决方案。有人知道吗?

最佳答案

Theme.AppCompat 样式首选项中的复选框是黑色的(框轮廓和填充,复选标记除外)。复选标记采用首选项背景的颜色。在您的情况下,您正在设置黑色背景,因此复选框不会显示,因为它们现在都是黑色的。我建议使用单独的样式(例如:Theme.Pref_JlptVocabulary)来设置具有正常灰色背景的首选项,以便显示复选框。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Pref_JlptVocabulary" parent="Theme.AppCompat">

</style>
</resources>

另一种方法是通过重新定义复选框 View 的样式来自定义复选框背景和复选标记颜色 how-to-customize-the-color-of-the-checkmark-color-in-android... .

关于Android 5.0 - 首选项中的复选框不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26972161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com