HarmonyOS 如何为自定义组件创建可以从 XML 分配的自定义属性?
How to create custom attributes for a custom component that can be assigned from XML in HarmonyOS?
我正在实施自定义组件并尝试从 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文件的根布局中自定义label app(名称可自定义)。格式为:
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>
第二步:当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();
}
我正在实施自定义组件并尝试从 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文件的根布局中自定义label app(名称可自定义)。格式为:
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>
第二步:当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();
}