XML 资源中的变量 - 将值从父级传递到子级
2022-09-04 04:38:32
我正在尝试重用原始形状,并使用这些声明性 XML 元素编写大部分用户界面。
如何制作一个可变的安卓属性?
但是我不想为每个属性值及其排列创建一个单独的 XML 文件,并且在此过程中重复了大部分工作。
例如,我希望此形状的使用者能够定义 android:radius 值?
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#449def"
android:endColor="#2f6699"
android:angle="270"/>
<stroke
android:width="1dp"
android:color="#2f6699"/>
<corners
android:radius="3dp"/>
</shape>
从使用 XML 父级设置属性?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/shape_box_round_blue_uniform" />
<!-- How to set the corner radius here? -->
<item android:drawable="@drawable/shape_box_round_blue" />
</selector>
解决 方案?
- 如果可能的话,我想不使用任何Java代码隐藏/避免创建自定义控件/类的需要
- 使用维度资源可能是一个富有成效的途径?