因为自定义组件要继承一个布局组件才能使用,然而自定义组件的xml布局文件内本身就套了一层布局组件,这样就出现了多套了一层的情况。看网上都是自定义组件内用<merge>标签作为根节点消除这多余的一层嵌套,但是这样的话最外层布局组件的属性就要写在java代码里了,感觉不是特别好。有什么能在解决冗余嵌套的同时还保证布局组件属性写在布局文件内的方法吗?
public class AppHeader extends LinearLayout {
public AppHeader(Context context, AttributeSet attrs) {
// 大概就是这个意思,如何将属性的设置写在xml里,还不会产生额外嵌套?
this.setBackgroundColor(0xffffff00);
LayoutInflater.from(context).inflate(R.layout.app_header, this);
}
}
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 一些构成AppHeader的基础组件 -->
</merge>
可以卸载外层布局里啊,是可以解析出来的。