appcompatbutton不使用选择器更改文本或背景

91zkwejq  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(266)

我有一个按钮,我定义了两个选择器,一个用于文本,一个用于背景。

文本颜色选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/yellow" android:state_activated="true" />
    <item android:color="@color/pink" android:state_activated="false" />
</selector>

背景选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image_no_selected" android:state_activated="true" />
    <item android:drawable="@drawable/image_selected" android:state_activated="false" />
</selector>

xml中的按钮

<androidx.appcompat.widget.AppCompatButton
            android:id="@+id/myButton"
            ....
            android:background="@drawable/selector_background"
            ...
            android:textColor="@drawable/selector_text_color"
            />

当我按下按钮,我想改变状态,所以我把这个:

myButton.isSelected = isSelected //boolean that changes true or false

但即使我换了按钮也不换吗 isSelected 我错过了什么?

nkcskrwz

nkcskrwz1#

选定的与激活的不同。您需要使用: myButton.isActivated = ... 或者改变 android:state_activatedandroid:state_selected :

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image_no_selected" android:state_selected="true" />
    <item android:drawable="@drawable/image_selected" android:state_selected="false" />
</selector>

(顺便说一句,你的名字好像是可以画出来的,或者倒过来了)

相关问题