生成下一个ViewPager片段



好吧,我正在构建一个应用程序,它使用MainActivity中的android.support.v4.view.ViewPager。我通过JSON对象从服务器加载一些视频地址,并希望为每个视频创建一个片段(滑动到下一个)。

我的fragment.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView
    android:id="@+id/videoView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
      android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
/>
    <ImageView
    android:id="@+id/ImageView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
      android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:scaleType="fitXY"
  />
</RelativeLayout>

现在我遇到了以下问题:我想渲染下一个片段,这样用户如果滑动到下一个,就可以看到一些预览图像。此时,我只能在完成onPageScrolled()后才能看到ImageView。

这是我访问碎片的方式视图:

VideoFragment obj = (VideoFragment) pageAdapter.getItem(arg0);
VideoView meinVideo = (VideoView) obj.getView().findViewById(R.id.videoView1);

发生以下情况:如果我试图访问项10,我会得到一个nullpointer异常,但该项存在于pageAdapter中。问题是这条线:

VideoView meinVideo = (VideoView) obj.getView().findViewById(R.id.videoView1);

只有在片段已经呈现的情况下,例如在onPageSelected事件之后,它才起作用。

有没有任何方法可以强制渲染下一个片段,使其在用户滑动之前就已经构建好了?

唯一的原因是您的VideoFragment没有初始化,VideoFragment的onCreateView没有调用。默认的初始化编号是3。

最新更新