gpt4 book ai didi

Android:MaterialButton 覆盖 Style 中的 textColor

转载 作者:行者123 更新时间:2023-11-29 18:27:00 26 4
gpt4 key购买 nike

我想定义一个替代按钮样式,它使用我的 secondaryColor 作为背景,分别使用 ?colorOnSecondary 作为文本。

但我正在努力获取样式中定义的 textColor。MaterialButton 正在为使用 ?colorOnPrimary 的 textColor 使用(私有(private))可绘制选择器。所以覆盖起来很麻烦。

有没有不用selectorDrawable设置颜色的其他方法?

最佳答案

如果只想覆盖按钮的颜色,可以使用materialThemeOverlay属性(需要1.1.0版本)。
像这样的东西:

  <style name="MyButtonTheme" parent="Widget.MaterialComponents.Button">
<item name="materialThemeOverlay">@style/ButtonStyleTextColor</item>
</style>

<style name="ButtonStyleTextColor">
<item name="colorOnPrimary">@color/...</item>
<item name="colorOnSecondary">@color/...</item>
<item name="colorOnSurface">....</item>
.....
</style>

否则您可以定义自定义样式:

<style name="CustomButtonStyle" parent="Widget.MaterialComponents.Button">
<item name="backgroundTint">@color/my_bg_color_selector</item>
<item name="android:textColor">@color/my_text_color_selector</item>
</style>

my_bg_color_selector.xml 可以是这样的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/..." android:state_enabled="true"/>
<item android:alpha="0.12" android:color="@color/..."/>
</selector>

my_text_color_selector.xml可以是:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/..." android:state_enabled="true"/>
<item android:alpha="0.38" android:color="@color/..."/>
</selector>

关于Android:MaterialButton 覆盖 Style 中的 textColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58303790/

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