让我们直接进入代码。
活动代码,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);
<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。当我检查变量时,我发现 vf_inner 布局的内容在 mChildren 中。
setId()
设置填充的视图ID。然后通过findViewById()
搜索 ViewFlipper,并通过ViewFlipper.addView()
添加这三个布局。 - user658042ViewFlipper.getChildAt (index)
引用ViewFlipper的子项,而不是它们的id。例如:View first_tab = view_flipper.getChildAt(0)
。 - user658042