在为 Buttons 和 ListView 项目实现选择器时,我一直发现我想为 state_pressed 和 state_focused 重用相同的项目/背景。
不是复制 XML“代码”,是否可以重用一个?
例如这是我的 state_pressed“代码”——如何让 state_focused 使用同一 block “代码”而不复制所有代码?
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- PDS: Side lowlight lines Inset so hidden underneath solid colour -->
<item android:bottom="0dp" android:right="0dp" android:top="0dp" android:left="0dp">
<shape>
<solid android:color="#00000000" />
<stroke android:color="@color/butGreySelectFrame" android:width="4dp"/>
<corners android:radius="4dp" />
</shape>
</item>
<!-- PDS: Solid colour -->
<item android:left="4dp" android:right="4dp" android:top="4dp" android:bottom="4dp">
<shape>
<solid android:color="@color/butGreySelectBack" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</layer-list>
</item>
最佳答案
是的,任何可绘制对象都可以在选择器中重复使用。
只需为layer-list
创建一个单独的文件,然后用
<item android:state_xxx android:drawable="@drawable/the_resource" />
关于Android:我可以重复使用图层列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24153908/