Android:Afollestad材质对话框动作按钮文本颜色

8tntrjer  于 2022-11-03  发布在  Android
关注(0)|答案(5)|浏览(134)

我一直在使用一个名为material-dialogs by afollestad的库。我需要更改正反按钮操作的文本颜色。

MaterialDialog(this).show {
            positiveButton("yes") {
                clearData()
                goToLoginPage()
            }
            negativeButton("cancel") { dismiss() }
            message("Some message")
        }

以上是显示材质对话框的代码。对于按钮参数,只能给出按钮的标题。我的要求是将“yes”改为绿色文本颜色,将“cancel”改为红色文本颜色。使用此库是否可以实现?

xyhw6mcr

xyhw6mcr1#

好的,这里有三行代码,你可以在styles.xml中的AppTheme中重写,给予它你自己的颜色。

更改对话框标题颜色

<item name="md_color_title">@color/yourTitleColor</item>

更改对话框内容颜色

<item name="md_color_content">@color/yourContentColor</item>

更改对话框正负按钮颜色

<item name="md_color_button_text">@color/yourPositiveNegativeColor</item>

更改对话框背景色

<item name="md_background_color">@color/yourDialogBgColor</item>

更改对话框分隔线颜色

<item name="md_divider_color">@color/yourDialogDividerColor</item>

编辑:

正如OP所说,他想为“正”和“负”按钮给予不同的颜色,库中似乎没有解决方案,但我们可以使用下面给出的解决方案。通过使用java方法Html.,我们可以为每个按钮文本设置自己的颜色。

val yesText = "<font color='#1B1ED8'>Yes</font>"
val cancelText = "<font color='#44D81B'>Cancel</font>"

MaterialDialog(this).show {
    positiveButton(text = Html.fromHtml(yesText))
    negativeButton(text = Html.fromHtml(cancelText))
    message(R.string.Some_message)
}
ifmq2ha2

ifmq2ha22#

在发布问题之前,请务必阅读文档!

检查此链接的主题和对话框文本颜色:材料-对话框〉文档〉文本颜色

7kjnsjlb

7kjnsjlb3#

请尝试以下代码.positiveColor()和.negativeColor(),并在项目上更改为gradle版本

// Material Dialogs
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'

查看完整的例子和下载源代码,当u需要。
https://github.com/afollestad/material-dialogs/blob/master/documentation/CORE.md#text-color

dwbf0jvd

dwbf0jvd4#

默认情况下,Activity主题中的android:textColorPrimary和android:textColorSecondary属性用于材质对话框的标题和内容颜色。colorPrimary用于操作按钮的默认文本颜色。如果您希望覆盖这些属性,可以使用提供的属性。将此自定义样式用于您的对话框。

<style name="AppTheme.Custom" parent="Theme.AppCompat">

  <item name="md_color_title">@color/your_color</item>
  <item name="md_color_content">@color/your_color</item>
  <item name="md_color_button_text">@color/your/color</item>

</style>

或者使用下面的代码到你的AppTheme。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <item name="android:textViewStyle">@style/InterTextViewStyle</item>
    <item name="android:buttonStyle">@style/InterButtonStyle</item>

    <item name="md_color_button_text">@color/colorAccent</item>
</style>

希望你得到了答案。快乐编码

9njqaruj

9njqaruj5#

这是一个简单的解决方案,分为两个步骤,它对我很有效

**步骤1)***时尚 *

<style name="AppThemeMD" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="md_color_button_text">@color/YOUR_COLOR_HERE</item>
</style>

**步骤2)***在您的活动或片段中 *

MaterialDialog(this@SplashActivity).show {
                    setTheme(R.style.AppThemeMD)
                    icon(R.mipmap.ic_launcher)
                     title(null, AppConstants.APP_NAME)

                        positiveButton(R.string.YOUR_STRING_HERE) {

                    }
                }

相关问题