为了对自定义组件进行扩展让其更灵活,这时候就需要用到自定义属性了。HarmonyOS的自定义属性使用还是很容易上手的,只需要以下简单三部就可以搞定。
1、添加xml命名空间
在xml根布局添加命名空间 “xmlns:my="http://schemas.huawei.com/res/ohos-auto"”,这里笔者取名为“my”,如下所示:
<DependentLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
xmlns:my="http://schemas.huawei.com/res/ohos-auto"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:alignment="center">
2、添加自定义属性
在自定义组件布局里面添加自定义属性,这里各定义了一个int和string类型的属性,分别名为myAttribute1和myAttribute2,如下所示:
<com.example.harmony.MyComponent
ohos:height="match_content"
ohos:width="match_content"
my:myAttribute1="8"
my:myAttribute2="hello"
/>
3、获取自定义属性
在自定义组件java类的构造方法中获取自定义属性,如下所示:
public MyComponent(Context context, AttrSet attrSet) {
super(context, attrSet);
if (attrSet.getAttr("myAttribute1").isPresent()) {
int myAttributeVal1 = attrSet.getAttr("myAttribute1").get().getIntegerValue();
}
if (attrSet.getAttr("myAttribute2").isPresent()) {
String myAttributeVal2 = attrSet.getAttr("myAttribute1").get().getStringValue();
}
}