Android使用selector点击按钮文字变色

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cui130/article/details/83304479

需求:开发中按钮按压时字体颜色变为灰色 松开后恢复


实现:1.res下新建color文件夹(放drawable文件夹下也可),创建文件btn_text_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_focused="false"
      android:state_enabled="true"
      android:state_pressed="false"
      android:color="@color/green"/><!--选择器的默认颜色-->
      
  <item android:state_enabled="false"
      android:color="@color/text_gray" /><!--控件是否接受触摸或者点击事件时的颜色,false不接受-->

  <item android:state_pressed="true"
      android:color="@color/text_gray" /><!--是否按下,如一个按钮触摸或者点击,true按下-->

  <item android:state_focused="true"
      android:color="@color/text_gray" /><!--是否取得焦点,true取的焦点-->
</selector>

2.布局文件中引用

<Button
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:layout_centerVertical="true"
    android:layout_marginLeft="10dp"
    android:background="@drawable/bg_white_shape"
    android:gravity="center"
    android:text="点击测试"
    android:textColor="@color/btn_text_color"
    android:textSize="16sp"
    />

以上已成功测试通过,下面贴一份开发过程中失败案例(和成功相似,比较难发现)btn_text_color.xml::

<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:color="@drawable/app_base_color" />
  <item android:color="@drawable/text_gray" android:state_pressed="true"/>
  <item android:color="@drawable/text_gray" android:state_pressed="true"/>

</selector>

这种点击不会变色。

猜你喜欢

转载自blog.csdn.net/cui130/article/details/83304479