今天写viewStub中用了merge标签 出了问题
布局demo如下:
主布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.actiobarmenu.MainActivity" >
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<ViewStub
android:id="@+id/view_stub"
android:layout_below="@id/text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inflatedId="@id/view_stub"
android:layout="@layout/stub_view_layout"
/>
</RelativeLayout>
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="HI world"
/>
</merge>
代码初始化
((ViewStub)findViewById(R.id.view_stub)).inflate();
报错Log如下:
06-03 11:56:55.473: E/AndroidRuntime(15725): Caused by: android.view.InflateException: can be used only with a valid ViewGroup root and attachToRoot=true
试了换成其它标签无问题,最后得出结论:merge标签不能应用于viewstub标签之下。