问题描述
我想创建一个自定义视图,并想在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 (将#修改为@)