为了对自定义组件进行扩展让其更灵活,这时候就需要用到自定义属性了。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();
        }
    }