2014-09-18 2 views
0

각 페이지 내에 offScreenLimit set to 5.이라는 뷰 페이저가 있습니다. 거기에 youtube 플레이어 조각이 있습니다. 그것은 잘 작동하지만, 그것은 첫 번째보다는 다섯 번째 페이지의 비디오를로드합니다.화면에서 페이저로드를보기 Fragement가 잘못된 데이터를로드합니다.

페이지가 1 인 경우 빠르게 1,2,3,4 페이지가로드되고 5가 유지됩니다. 페이지가 연결된 페이지의 비디오 만로드해야합니다.

문제는 내가 조각을 잘못 만들고 있다는 것입니다. 호출기의 모든보기는 플레이어 조각 내보기 호출기 조각 내부

내가 onCreateView (에서 아래의 메소드를 호출하고)

public void loadPlayer(final String trailerUrl) { 

    YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment 
      .newInstance(); 
    getChildFragmentManager().beginTransaction() 
      .replace(R.id.youtube_fragment, youTubePlayerFragment).commit(); 

     youTubePlayerFragment.initialize(Utils.DEVELOPER_KEY, 
       new OnInitializedListener() { 

        @Override 
        public void onInitializationSuccess(Provider arg0, 
          YouTubePlayer player, boolean wasRestored) { 
         if (!wasRestored) { 
          player.cueVideo(trailerUrl); 
         } 
        } 

        @Override 
        public void onInitializationFailure(Provider arg0, 
          YouTubeInitializationResult errorReason) { 
        } 

       }); 

} 

답변

1

를 제외하고, 올바른 데이터를로드 나는 동일한 문제를 가지고 있으며 setUserVisibleHint(boolean isVisibleToUser) 메서드를 조각화하여 해결할 수있었습니다. 이 메서드를 오버라이드 (override) 해, fragment가 현재 표시되고있는 것을 나타내는 지표로서 사용한다 (isVisibleToUser가 true의 경우). 따라서이 메소드가 isVisibleToUser==true과 함께 호출되면 loadPlayer 메소드를 호출 할 수 있습니다.

관련 문제