Android:我可以重复使用图层列表吗?

标签 android xml code-reuse layer-list

在为 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/

相关文章:

android - 如何在android 12中通过听筒播放音频?

java - android Gradle同步错误(匹配版本)

android - 从大型 XML 填充 ListView

xml - 使用 XSLT,如何在我的两个 XML 元素之间显示一个空格? &nbsp 和间距不修复它

machine-learning - 准备训练数据的通用框架?

java 。重用带有返回的 try-finally 构造

php - 如何(以及在​​哪里)在 Laravel 中注册自定义查询方法

java - Android 缓存实例

android - 我应该如何在 android studio 中设置 gradle 4.5 的类路径

Java XML读取问题: read different child tags