android - 我可以在选择器中添加图层列表吗

标签 android

我有以下可绘制对象

<!-- button_shape.xml -->
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <corners android:radius="3dp"/>
            <solid android:color="#006600" />
        </shape>
    </item>

    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="3dp"/>
            <solid android:color="#003300" />
        </shape>
    </item>
</selector>

<!-- button_shape_shadowed.xml -->
<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="5dp"/>
            <solid android:color="#D0D0D0"/>
        </shape>
    </item>
    <item>
        <inset
            android:drawable="@drawable/button_shape"
            android:insetBottom="5dp"
            android:insetLeft="5dp"
            android:insetRight="5dp"
            android:insetTop="5dp">
        </inset>
    </item>
</layer-list>

有没有办法将它们合并为一个?我的主要问题是我不能在 inset 中有一个 selector。由于 button_shape.xml 没有在其他任何地方使用,我不想无缘无故地创建一个额外的文件。

最佳答案

谢谢大家!以下确实有效,即使 Android Studio 提示 selector is not allowed inside inset

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="5dp"/>
            <solid android:color="#D0D0D0"/>
        </shape>
    </item>
    <item>
        <inset android:insetBottom="2dp">
            <selector>
                <item android:state_pressed="false">
                    <shape android:shape="rectangle">
                        <corners android:radius="3dp"/>
                        <solid android:color="#006600" />
                    </shape>
                </item>

                <item android:state_pressed="true">
                    <shape android:shape="rectangle">
                        <corners android:radius="3dp"/>
                        <solid android:color="#003300" />
                    </shape>
                </item>
            </selector>
        </inset>
    </item>
</layer-list>

关于android - 我可以在选择器中添加图层列表吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24977922/

相关文章:

Android解析String ArrayIndexOutOfBoundsException

android - 从输入流播放视频文件时出现延迟

android - 如何使用 Intent 打开显示 "Group"选项卡的联系人?

Android Canvas 在相机上画线

Android 搜索小部件 - onQueryTextSubmit 和将 Intent 发送到 SearchableActivity 之间的区别?

android - Wifimanager如何连接WEP/WAP网络

java - 如何在android中将多个记录从一个 Activity 传递到另一个 Activity ?

c# - Android 虚拟设备加载速度非常慢

android - 如何通过可编程方式将屏幕旋转到横向(或纵向)?

java - 从检索到的日期中提取日期-月-年