
有时候为了提高布局文件的复用性,可以将一个xml布局文件封装成自定义View,以方便调用。例如:一个ConstraintLayout的布局文件,可以自定义一个View继承ConstraintLayout。如下面的代码所示:
public
引用xml布局文件关键代码:
View view = inflate(context, R.layout.item_start_top, this);
这个xml文件的根布局可以写成merge。这样生成的View直接是一个ConstraintLayout是最外层的布局。如果xml文件的布局的根布局是ConstraintLayout。那么这个View里面就是ConstraintLayout嵌套一个ConstraintLayout,多了一层无用的布局。
注意:使用merge的xml文件在AndroidStudio中默认是不能预览的,因为merge不是个View。在xml中使用属性tools:parentTag指定父布局,则可在AndroidStudio里面预览。
例如:tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"