主窗体xml:
-
<FrameLayout 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"
-
tools:context=".MainActivity" >
-
-
<com.yzh.lockpri2.widget.ScaledImageView
-
android:id="@+id/imageBG"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"/>
-
-
<FrameLayout
-
android:layout_width="match_parent"
-
android:layout_height="100dp"
-
android:paddingBottom="5dp">
-
-
<com.yzh.lockpri2.widget.BluredImageView
-
android:id="@+id/headerBg"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"/>
-
-
-
<TextView
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:text="@string/welcome_title"
-
android:layout_gravity="center"
-
style="@style/welcome_bold_info_font"
-
/>
-
-
<TextView
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:text="@string/welcome_info"
-
style="@style/welcome_little_info_font"
-
android:layout_gravity="center_horizontal|bottom"
-
android:layout_marginBottom="3dp"/>
-
</FrameLayout>
-
-
<ViewStub
-
android:id="@+id/keyboardStub"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"
-
android:layout_gravity="bottom"
-
android:inflatedId="@+id/keyboard"
-
layout="@layout/keyboard"
-
/>
-
-
</FrameLayout>
keyboard是另外一个xml中的布局, 在视图中能正常显示.
然后在代码中:
-
stub = (ViewStub)findViewById(R.id.keyboardStub);
-
stub.inflate();
程序执行到 stub.inflate(); 报错 "ViewStub must have a valid layoutResource". 检查了半天,
才发现是在主xml中设置时使用了<include>标签的用法:
-
layout="@layout/keyboard"
正确的应该是:
-
android:layout="@layout/keyboard"
修改后, 执行正常!
Android_ViewStub
原文:http://blog.csdn.net/zimo2013/article/details/42080595