主窗体xml:
[html] view
plaincopy
- <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中的布局, 在视图中能正常显示.
然后在代码中:
[java] view
plaincopy
- stub = (ViewStub)findViewById(R.id.keyboardStub);
- stub.inflate();
程序执行到 stub.inflate(); 报错 "ViewStub must have a valid layoutResource". 检查了半天,
才发现是在主xml中设置时使用了<include>标签的用法:
[html] view
plaincopy
- layout="@layout/keyboard"
正确的应该是:
[html] view
plaincopy
- android:layout="@layout/keyboard"
修改后, 执行正常!
时间: 2024-10-27 21:29:08