【问题标题】:Change dialogMessage color of EditTextPreference更改 EditTextPreference 的 dialogMessage 颜色
【发布时间】:2019-10-30 02:43:37
【问题描述】:

我有一个自定义偏好,它扩展了EditTextPreference

class DeleteAccountPreference(context: Context, attrs: AttributeSet) : EditTextPreference(context, attrs) {
    ...
}  

preferences.xml

<my.app.DeleteAccountPreference
    android:layout="@layout/preference_click"
    android:key="delete_account"
    android:title="Delete Account"
    android:dialogMessage="@string/delete_account_message" />

我已将自定义主题应用于:

styles.xml

<style name="BaseTheme" parent="Theme.AppCompat.NoActionBar">
    ...        
    <item name="alertDialogTheme">@style/AlertDialogTheme</item>
</style>

<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:background">@color/colorIcons</item>
    <item name="colorPrimary">@color/colorLightBlack</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="colorPrimaryDark">@color/colorExit</item>
    <item name="editTextColor">@color/colorAccent</item>
    <item name="android:textColorHint">#000000</item>
    <item name="android:windowBackground">@color/colorPrimary</item>
</style>

但是,无论我向AlertDialogTheme 添加什么项目,我似乎都无法更改下面显示的dialogMessage 颜色(白色)。

知道我需要添加什么&lt;item&gt; 来更改此颜色吗?

【问题讨论】:

  • 你为什么不在DialogBox里面使用TextInputLayout??

标签: java android xml kotlin android-preferences


【解决方案1】:

您应该将android:textColorSecondary 应用于您的活动主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...
    <item name="android:textColorSecondary">#FF5722</item>
</style>

然后你会得到一个橙色的消息内容:

注意,这将影响此活动中的所有其他视图,这依赖于textColorSecondary 属性。我试图让这个更改只影响特定的偏好,不幸的是PreferenceFragmentCompat 将忽略提供的Context 并将使用活动的上下文,因此传递带有自定义主题的ContextThemeWrapper 不会生效。我想这是 Google 团队有意识的决定,这意味着此偏好屏幕中的所有属性都应适应相同的配色方案。

【讨论】:

    【解决方案2】:

    将以下项目添加到您的 AlertDialogStyle。

    <item name="android:textColor">@color/colorPrimary</item>
    

    【讨论】:

    • 这会改变标题 (DELETE ACCOUNT)、正面按钮 (OK) 和负面按钮 (CANCEL) 的颜色。我只想更改 dialogMessage 颜色 (Type Delete to delete your account)。
    猜你喜欢
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2013-10-03
    • 2020-09-14
    相关资源
    最近更新 更多