天天看点

Android开发 - Button的textColor属性无效,设置后字体颜色变成粉红色的原因,以及解决办法THE END!

原创博客,转载请注明出处,欢迎转载。

原本想要的效果如下图:↓

Android开发 - Button的textColor属性无效,设置后字体颜色变成粉红色的原因,以及解决办法THE END!

可是写完代码做出来的效果如下图:↓

Android开发 - Button的textColor属性无效,设置后字体颜色变成粉红色的原因,以及解决办法THE END!

错误的原代码:

bt_sl_tx_sign_in_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorTextSignInPress" android:state_pressed="true"/>
    <item android:drawable="@color/colorWhite" />
</selector>
           

bt_sl_tx_sign_up_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorTextSignUpPress" android:state_pressed="true"/>
    <item android:drawable="@color/colorTextSignUpNormal" />
</selector>
           

布局文件:

<Button
    android:layout_width="123dp"
    android:layout_height="48dp"
    android:text="@string/sign_in"
    android:textSize="18sp"
    android:textColor="@drawable/bt_sl_tx_sign_in_splash"
    android:background="@drawable/bt_sl_bg_sign_in_splash"/>

<Button
    android:layout_width="123dp"
    android:layout_height="48dp"
    android:layout_alignParentEnd="true"
    android:text="@string/sign_up"
    android:textSize="18sp"
    android:textColor="@drawable/bt_sl_tx_sign_up_splash"
    android:background="@drawable/bt_sl_bg_sign_up_splash" />
           

原因及解决:不应该把字体的selector的item使用drawable属性,改为color属性即可解决。

改正后的代码:

bt_sl_tx_sign_in_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorTextSignInPress" android:state_pressed="true"/>
    <item android:color="@color/colorWhite" />
</selector>
           

bt_sl_tx_sign_up_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorTextSignUpPress" android:state_pressed="true"/>
    <item android:color="@color/colorTextSignUpNormal" />
</selector>
           

如果我的文章对您有帮助,就请客官给个赞吧

Android开发 - Button的textColor属性无效,设置后字体颜色变成粉红色的原因,以及解决办法THE END!
Android开发 - Button的textColor属性无效,设置后字体颜色变成粉红色的原因,以及解决办法THE END!
Android开发 - Button的textColor属性无效,设置后字体颜色变成粉红色的原因,以及解决办法THE END!

THE END!