微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为可以在鸿蒙中从 XML 分配的自定义组件创建自定义属性?

如何解决如何为可以在鸿蒙中从 XML 分配的自定义组件创建自定义属性?

我正在实现一个自定义组件并尝试从 XML 获取属性的输入。在Android中,它看起来像这样

<it.beppi.arcpageindicator.ArcPageIndicator
   android:layout_width="100dp"
   android:layout_height="20dp"
   android:layout_alignParentTop="true"
   android:layout_centerHorizontal="true"
   app:apiViewPager="@id/view_pager"
   app:apiArcOrientation="todown"
   app:apiAnimationType="cover"
   />

我如何在鸿蒙操作系统中做到这一点?

解决方法

第一步:您需要在XML文件的根布局中自定义标签应用(名称可以自定义)。格式为: xmlns:app="http://schemas.huawei.com/res/ohos-auto",代码如下:

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    xmlns:app="http://schemas.huawei.com/res/ohos-auto"
    ......
    >
</DirectionalLayout>

步骤 2:在 XML 文件中使用 ArcPageIndicator 时,定义行自定义属性 apiArcOrientation。代码如下:

<!--com.huawei.flowlayout.library is the package path of the FlowLayout class ---->
<com.huawei.flowlayout.library.FlowLayout
    ......
    app:apiArcOrientation="toDown"
    />

第三步:通过Java代码中的AttrSet获取属性值。代码如下:

public ArcPageIndicator(Context context,AttrSet attrSet) {
    ......
    String apiArcOrientation = attrSet.getAttr("apiArcOrientation").get().getStringValue();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。