クラスがあり、 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が述べたように、問題は、 aとして<merge>
使用され、root 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
持っているものを膨らませようとしました。<merge>