如何解决AppCompatButton不会使用选择器更改文本或背景
我有一个按钮,我定义了两个选择器,一个用于文本,一个用于背景。
文本颜色选择器
<?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
缺少的内容,也不能更改按钮吗?
解决方法
所选内容与激活的内容不同。您需要使用以下任一方法:
-
myButton.isActivated = ...
-
或将
android:state_activated
更改为android: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>
(看起来像您的可绘制名称,或者在此相反)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。