原本想要的效果如下图:↓
可是写完代码做出来的效果如下图:↓
错误的原代码:
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>