让我们假设我们正在基于 LinearLayout 开发复合组件:
public class SomeView extends LinearLayout {
public SomeView(Context context, AttributeSet attrs) {
super(context, attrs);
setOrientation(LinearLayout.VERTICAL);
View.inflate(context, R.layout.somelayout, this);
}
}
如果我们使用 LinearLayout
作为 somelayout.xml
的根,我们将有额外的视图级别,所以我们使用 merge 标签:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text"
android:textSize="20sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some other text"/>
</merge>
但是在 IDE 的 Preview 选项卡 merge 总是充当 FrameLayout,我们将看到类似的东西:
(它是 Android Studio,Intellij IDEA 也是一样,关于 Eclipse 我不知道)
预览加速开发布局很多,这是可悲的失去这么大的帮助,即使是一些布局。也许有一种方法可以指定,预览应该如何解释 merge
标签在特定的布局?