我想有一种根据视图状态更改颜色的背景颜色。
我很累像Google的示例一样创建它(除了我使用资源中的颜色而不是对十六进制值进行硬编码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:color="@color/transparent" />
<item
android:color="@color/gray_3"
android:state_selected="true" />
</selector>
(位于res/color
中)
然后将其设置为视图的背景。但是,当我运行代码时,出现此错误导致崩溃:
Binary XML file line #3: <item> tag requires a 'drawable' attribute or child tag defining a drawable
这告诉我选择器中的“ item”标签需要drawable
而不是color
来定义颜色。
当我将其更改为可绘制对象时,例如:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable ="@color/transparent" />
<item
android:drawable ="@color/gray_3"
android:state_selected="true" />
</selector>
该崩溃消失了,但是Android Studio给了我一个不起眼的警告,说需要“颜色”
我唯一的怀疑是也许我不应该将视图背景设置为颜色选择器
答案 0 :(得分:0)
尝试一下:
可绘制的xml代码:-
像这样的透明色
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@android:color/transparent"" />
<stroke
android:width="1dp"
android:color="@color/selected" />
<corners android:radius="4dp" />
</shape>
答案 1 :(得分:0)