让我们直截了当的代码.
活动代码,onCreate方法
setContentView(R.layout.main); View main_view = findViewById(R.id.main_view); View view_flipper = main_view.findViewById(R.id.vf); View first_tab = view_flipper.findViewById(R.id.prev_pane);
main.xml布局代码:
<ViewFlipper android:id="@+id/vf" android:layout_width="fill_parent" android:layout_height="fill_parent" > <include android:id="@+id/prev_pane" layout="@layout/vf_inner" /> <include android:id="@+id/cur_pane" layout="@layout/vf_inner" /> <include android:id="@+id/next_pane" layout="@layout/vf_inner" /> </ViewFlipper>
问题!
主视图正确找到,ViewFlipper也是如此,但是没有找到prev_pane或cur_pane或next_pane,返回一个空指针.任何想法为什么?
通过使用Intent通过选项卡调用此活动.除id之外,所有引用都被正确解析
当我检查变量时,我会发现mChildren中的vf_inner布局的内容
解决方法
这是因为< include />标签不是您的UI层级中的实际视图.
他们更多的是Android工具的复制和粘贴指令.
他们更多的是Android工具的复制和粘贴指令.
如果要在运行时找到窗格,请将ID添加到所包含的布局的根元素中.这样可以通过findViewById()找到它们.