2016-05-23 65 views
0

我有大约5种不同的YouTube视频,我想把它们放到viewpager中来滑动它们。有没有解决这个问题的解释,因为我在这里和不同的网站搜索,但找不到有用的东西。感谢您的关注Viewpager里面的YoutubePlayerSupportFragment

+0

见随释放YouTubeSample。请特别关注VideoListDemoActivity,了解它如何为每个单元格使用YouTubeThumbnailView。这就是我推荐用于ViewPager的原因。 – djunod

回答

0

您必须在旧版YouTubePlayer上拨打YouTubePlayerSupportFragment.reset(),然后切换ViewPager,然后YouTubePlayerSupportFragment.initialize()。这需要响应TabLayout的onTabSelected事件,该事件不能使用.setupWithViewPager(这会吞下ViewPager和TabLayouts视图更改事件)。这大致是我们所需要的适配器(initialisePlayer和shutDownPlayer被称为响应标签的变化,在建立适配器,ViewPager和TabLayout片段):

private SparseArray<YouTubePlayerSupportFragment> fragments = new SparseArray<>(3); 
private SparseArray<YouTubePlayer> players = new SparseArray<>(3); 

@Override 
public android.support.v4.app.Fragment getItem(final int position) { 
YouTubePlayerSupportFragment fragment = new YouTubePlayerSupportFragment(); 
fragments.put(position, fragment); 

return fragment; 
} 

public void initialisePlayer(final int position) { 
YouTubePlayerSupportFragment fragment = fragments.get(position); 
fragment.initialize(API_KEY, new YouTubePlayer.OnInitializedListener() { 
@Override 
public void onInitializationSuccess(final YouTubePlayer.Provider provider, final YouTubePlayer youTubePlayer, final boolean b) { 
players.put(position, youTubePlayer); 
youTubePlayer.cueVideo(getVids()[position]); 
} 

@Override 
public void onInitializationFailure(final YouTubePlayer.Provider provider, final YouTubeInitializationResult youTubeInitializationResult) { 
} 
}); 

} 

public void shutDownPlayer(int position) { 
YouTubePlayer player = players.get(position); 
if (player == null) { 
return; 
} 
相关问题