2014-10-16 58 views
0

好吧,我正在構建一個使用MainActivity中的android.support.v4.view.ViewPager的應用程序。我通過服務器的JSON對象加載一些視頻地址,並希望爲每個視頻創建一個片段(以便滑入下一個視頻)。構建下一個ViewPager片段

我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,我得到一個空指針異常,但項pageAdapter存在。問題是這樣的一行:

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

它只適用,如果片段已經呈現,F.E.在onPageSelected事件之後。

有什麼辦法強制渲染下一個碎片,以便它們在用戶滑動之前就已經建好了嗎?

+0

嘗試調用此對您viewpager: pager.setOffscreenPageLimit(<編號,你想裝一次>); – mt523 2014-10-16 22:34:17

+0

剛剛嘗試過。一切適用於前3卷,之後,我只得到一個黑屏和一個OutOfRange錯誤。 – user2891491 2014-10-17 13:56:44

回答

0

的唯一原因是你的VideoFragment沒有初始化,VideoFragment的onCreateView尚未invoked.the默認initalize數爲3