【问题标题】:How to change android AppCompatButton's text color on pressed如何在按下时更改 android AppCompatButton 文本颜色
【发布时间】:2016-03-02 23:07:42
【问题描述】:

我为自定义 AppCompatButton 创建了以下样式。

<style name="AppTheme.secondary_button" parent="Base.Widget.AppCompat.Button">
    <item name="colorButtonNormal">@color/secondary_button_color</item>
    <item name="colorControlActivated">@color/menu_blue</item>
    <item name="android:colorButtonNormal">@color/secondary_button_color</item>
    <item name="android:textColorPrimary">@color/gray</item>
    <item name="android:textColor">@color/gray</item>
</style>

按下按钮时更改文本颜色的属性是什么?

【问题讨论】:

    标签: android button styles


    【解决方案1】:

    为此,您只需将您指定的 textColor 替换为选择器:

    类似这样的:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:color="@color/white" />
        <item android:state_focused="true" android:color="@color/grey" /> <!-- (for accessibility) -->
        <item android:color="@color/black" />
    </selector>
    

    然后像这样分配它: android:textColor="@drawable/button_foreground_selector"

    <android.support.v7.widget.AppCompatButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        style="@style/CustomAppCompatButtonStyle"
        android:text="Hi, Neo"/>
    

    未点击按钮:

    点击按钮:

    我使用的样式:

    <style name="CustomAppCompatButtonStyle" parent="Base.Widget.AppCompat.Button">
        <item name="colorButtonNormal">@color/red</item>
        <item name="colorControlActivated">@color/blue</item>
        <item name="android:colorButtonNormal">@color/green</item>
        <item name="android:textColorPrimary">@color/gray</item>
        <item name="android:textColor">@drawable/button_foreground_selector</item>
    </style>
    

    【讨论】:

    • 感谢您的回答,但此解决方案无效...:(
    • @Neo 我刚刚使用 AppCompat.Button 创建了一个虚拟项目,其中包含我提出的自定义样式和解决方案。这对我来说可以。我已经上传到DropBox:dropbox.com/s/e1wamgtd06b20ne/NeoTestApp.zip?dl=0,你可以试试吗?
    • 还在我上面的回答中添加了截图和扩展描述。
    • @康斯坦丁 非常感谢!!!您的项目正在按预期工作。但不知何故,同样的实现它在我的项目中不起作用。我正在调查我到底错过了什么。
    • @Konstantin 我在样式属性之后应用了额外的 android:textColor="@color/gray",愚蠢的错误......:(
    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多