我有一CustomView
堂课,我想为它使用 xml 布局。因此,我的类扩展RelativeLayout
、扩展 xml 布局并尝试将其附加到自身。
public class CustomView extends RelativeLayout
{
public CustomView (Context context)
{
super(context);
LayoutInflater.from(context).inflate(R.layout.layers_list_item, this, true);
}
}
如果我的 xml 布局有一些布局(例如,线性)作为根元素,它可以正常工作。但是当我尝试<merge>
根据这个响应使用标签时,我得到了这个错误:
<merge /> can be used only with a valid ViewGroup root and attachToRoot=true
我的 xml 布局是这样的:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
... >
<CheckBox
... />
<TextView
... />
</merge>
我还尝试从<merge... >
标签中删除所有属性,得到了相同的结果。怎么了?
更新:上面的代码是正确的。正如secretlm 所提到的,问题在于它<merge>
被用作 aroot element
并在另一段 od 代码中膨胀:
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this,
R.layout.layers_list_item,
R.id.layers_list_item_text);
并且随着添加的每个元素,适配器都试图以R.layout.layers_list_item
root<merge>
身份膨胀。