2

是否可以在 Android 中为复合可绘制对象定义状态列表?

这是我在布局 xml 中的按钮:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableTop="@drawable/btn_top"
    android:text="@string/button_text" />

这是我的可绘制 xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="true" android:drawable="@drawable/btn_top_enabled" />
    <item android:drawable="@drawable/btn_top_disabled" />
</selector>

这适用于背景,但不适用于 drawableTop。始终显示第一个状态。这在 Android 中是否可行,如果是这样,我是否遗漏了什么?

4

2 回答 2

0

看一下 TextView.java 源代码,你会看到是的,你可以使用 StateListDrawable 作为复合 Drawable,根据 TextView 状态显示

于 2013-08-25T14:43:29.213 回答
0

尝试:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="true" android:drawable="@drawable/btn_top_enabled" />
    <item android:state_activated="true" android:drawable="@drawable/btn_top_enabled" />
    <item android:drawable="@drawable/btn_top_disabled" />
</selector>

button.setActivated(true);
于 2015-01-05T18:37:40.507 回答