gpt4 book ai didi

android - ListPreference 文本颜色

转载 作者:行者123 更新时间:2023-12-05 00:10:00 26 4
gpt4 key购买 nike

我很难尝试设置 ListPreference 的样式。

我应用了一个主主题,它声明了一个 preferenceTheme,并且它们都链接到一个 dialogTheme(分别链接到 alertDialogTheme)。它的工作原理除了项目的文本颜色不会改变 - 但所有其他文本的颜色都会改变。我不能依赖解决方法,因为我使用的是 v7 首选项,因此无法覆盖自定义类中的对话框方法。
对我来说,这些行似乎忽略了文本颜色值,但也许其他人对此有解决方案。否则这可能是一个错误?

主要风格:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- [...] -->
<!-- Some color values -->

<item name="android:dialogTheme">@style/DialogTheme</item>
<item name="android:alertDialogTheme">@style/DialogTheme</item>
<item name="dialogTheme">@style/DialogTheme</item>
<item name="alertDialogTheme">@style/DialogTheme</item>
<item name="preferenceTheme">@style/PreferenceTheme</item>

</style>


偏好主题:

<style name="PreferenceTheme" parent="PreferenceThemeOverlay.v14.Material">
<!-- [...] -->
<!-- Some color values -->
<item name="android:textColor">@color/preference_primary_color</item>
<item name="android:textColorPrimary">@color/preference_primary_color</item>
<item name="android:textColorSecondary">@color/preference_primary_color</item>
<item name="android:textColorHighlight">@color/preference_primary_color</item>
<item name="android:editTextColor">@color/preference_primary_color</item>

<item name="android:dialogTheme">@style/DialogTheme</item>
<item name="android:alertDialogTheme">@style/DialogTheme</item>
<item name="preferenceTheme">@style/PreferenceTheme</item>
</style>


对话框主题:

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:textColor">#EEEEEE</item>
<item name="android:textColorPrimary">#EEEEEE</item>
<item name="android:textColorSecondary">#EEEEEE</item>
<item name="android:textColorHighlight">#EEEEEE</item>
<item name="android:textColorTertiary">#EEEEEE</item>
<item name="android:textColorAlertDialogListItem">#EEEEEE</item>
<item name="android:editTextColor">#EEEEEE</item>

<item name="color">#EEEEEE</item>
</style>

This is how it looks.
这是它的样子。文本应该是#EEEEEE。我已经剪掉了它,但文本颜色应用于每个给定的样式。

最佳答案

你做的一切都正确,除了一件事:在覆盖 textColorAlertDialogListItem 时不要使用 android 前缀,因为这不是 AlertDialog 的框架版本>.

此声明通常适用于几乎所有属于支持小部件/ View 的属性。原因很简单:并非所有属性在旧平台上都可用。此类示例是 API 21 中引入的 android:colorControlActivated。AppCompat 库声明了自己的 colorControlActivated,因此它也适用于较旧的 API 级别。在这种情况下,开发人员在主题中定义样式时不应使用 android 前缀,因为这将指向属性的平台版本而不是 AppCompat 版本。

TL;DR:除非必须(即出现编译错误),否则不要将 android 前缀用于支持小部件。


P.S.:我创建了一个 fix / extension支持 preferences-v7 lib 的烦人的东西,你可能想检查一下。

关于android - ListPreference 文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46061699/

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