Android创建自定义视图并在xml中指定根级属性

问题描述

我想创建一个自定义视图,并想在xml中指定根级属性,但是我不知道如何。

MyCustomView.kt

class MyCustomView(
        context: Context,attrs: AttributeSet? = null,defStyleAttr: Int = 0
): LinearLayout(context,attrs,defStyleAttr) {

    init {
        inflate(context,R.layout.my_custom_view,this)
    }
}

选项1:my_custom_view.xml

<merge xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/myText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:layout_gravity="center"
        android:gravity="center"/>

</merge>

此选项与LinearLayout > TextView创建所需的嵌套级别,但是我无法在merge标记上指定任何xml属性

选项2:my_custom_view.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:layout_gravity="center"
    android:gravity="center"
    android:background="@drawable/shape_circle"
    android:backgroundTint="@color/colorPrimary">

    <TextView
        android:id="@+id/myText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:layout_gravity="center"
        android:gravity="center"/>

</LinearLayout>

此选项会与LinearLayout > LinearLayout > TextView创建不必要的嵌套。

我只想为我的视图指定xml中的属性,因为以编程方式进行操作很麻烦。我尝试使用tools:parentTag,但不适用于所有属性

解决方案吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)