因为在开发LockPri2时,在界面输入密码的地方想设置一个浮动窗体,当主窗体加载完成时,会动画的方式从下至上弹出,
这时候想用ViewStub
主窗体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"
修改后,执行正常!
原文链接:https://www.f2er.com/xml/298357.html