【问题标题】:Android Alert Dialog Checkbox TextAndroid 警报对话框复选框文本
【发布时间】:2019-11-11 07:15:59
【问题描述】:

我有一个 MaterialAlertDialogBu​​ilder,我将以下 ContextThemeWrapper 传递给它:

<style name="MyThemeOverlay.MaterialComponents.MaterialAlertDialog" parent="Theme.AppCompat.Dialog.Alert">
    <item name="android:background">?customfrontcolour</item>
    <item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
    <item name="buttonBarNegativeButtonStyle">@style/Widget.MaterialComponents.Button.TextButton.Dialog</item>
    <item name="colorControlNormal">?customtextcolor</item>
    <item name="colorControlActivated">?customtextcolor</item>
</style>

我不知道如何更改复选框(“Beirut”)旁边文本的颜色。

我尝试将以下所有内容添加到我的MyThemeOverlay.MaterialComponents.MaterialAlertDialog:

"textColorAlertDialogListItem"
"android:textColor"
"android:textColorPrimary"

【问题讨论】:

    标签: android android-alertdialog material-components material-components-android


    【解决方案1】:

    您必须使用 android:checkedTextViewStyle 属性为对话框定义自定义样式:

      <style name="dialogCheckedStyle" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
        <item name="android:checkedTextViewStyle" ns2:ignore="NewApi">@style/myCheckedTextView</item>
      </style>
    

    然后定义:

      <style name="myCheckedTextView" parent="@style/Widget.MaterialComponents.CheckedTextView">
        <item name="android:textColor">@color/....</item>
      </style>
    

    然后只显示对话框:

      new MaterialAlertDialogBuilder(this,
          R.style.dialogCheckedStyle)
          .setMultiChoiceItems(....)
          //...
          .show();
    

    默认颜色由这个选择器定义:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:alpha="@dimen/material_emphasis_medium" android:color="?attr/colorOnSurface"/>
    </selector>
    

    【讨论】:

    • 我正在尝试这个,但它现在正在改变
    • @PierreKhoury 这是什么意思现在正在改变
    • sry 我的意思是它不*工作。我复制了你的代码,没有任何改变。无论我尝试做什么,复选框旁边的文本总是黑色的。
    • 我一定是做错了什么,因为我使用的是 1.2.0-alpha01。无论如何,我会进行更多测试,如果发现问题,我会报告。谢谢
    • @PierreKhoury android:checkedTextViewStyle 使用的默认选择器是&lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;item android:alpha="@dimen/material_emphasis_medium" android:color="?attr/colorOnSurface"/&gt;&lt;/selector&gt;。您可以在应用主题级别更改属性colorOnSurface,也可以简单地在组件中覆盖此值。
    猜你喜欢
    • 1970-01-01
    • 2013-06-26
    • 2017-09-14
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2023-03-11
    相关资源
    最近更新 更多