gpt4 book ai didi

android - 如何使用样式全局更改 AlertDialog 上的按钮文本颜色?

转载 作者:行者123 更新时间:2023-12-04 01:51:23 28 4
gpt4 key购买 nike

当我这样做时在 android O 上:

  <style name="MyTheme" parent="@android:style/Theme.Material.Light.NoActionBar"> 

<item name="android:textColor">#ff0000</item>

</style>

我的警报对话框的文本按钮颜色改变了,但这在 Lollipop 下不起作用。更糟糕的是,在 Lollipop 上,它会更改警报对话框标题的颜色。

如何从 kitkat 到 android O 我可以全局更改所有 alertdialog 按钮的字体颜色?

最佳答案

借助 MaterialComponents 主题和 MaterialAlertDialogBu​​ilder,您可以使用应用主题中的 materialAlertDialogTheme 属性全局定义样式。

类似于:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="materialAlertDialogTheme">@style/My_MaterialAlertDialog</item>
</style>

然后你可以定义一个自定义样式:

  <style name="My_MaterialAlertDialog" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
<!-- Style for positive button -->
<item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
<!-- Style for negative button -->
<item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
<!-- Style for neutral button -->
<item name="buttonBarNeutralButtonStyle">@style/NeutralButtonStyle</item>
</style>

按钮样式定义为:

  <style name="PositiveButtonStyle" parent="@style/Widget.MaterialComponents.Button">
<item name="android:textColor">#FFFFFF</item>
<item name="backgroundTint">@color/primaryDarkColor</item>
</style>

<style name="NegativeButtonStyle" parent="@style/Widget.MaterialComponents.Button.TextButton.Dialog">
<item name="android:textColor">@color/primaryDarkColor</item>
</style>

<style name="NueutralButtonStyle" parent="@style/Widget.MaterialComponents.Button.TextButton.Dialog">
....
</style>

使用库的 1.1.0 版本,您还可以使用自定义样式中的 materialThemeOverlay 简单地覆盖默认颜色:

  <style name="My_MaterialAlertDialog" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
<item name="materialThemeOverlay">@style/DialogButtonOverlay</item>
</style>

<style name="DialogButtonOverlay">
<item name="colorPrimary">@color/...</item>
</style>

关于android - 如何使用样式全局更改 AlertDialog 上的按钮文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52836424/

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