请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-11-6 16:17:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有以下可绘制对象

<!-- 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 没有在其他任何地方使用,我不想无缘无故地创建一个额外的文件。



Best Answer-推荐答案


谢谢各位!即使 Android Studio 提示 inset 中不允许 selector ,以下操作也确实有效。

<?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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子790291

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap