2016-12-15 125 views
-1

我有一个viewpagerVideoView试图了解onPageScrolled

所以我想当我滚动当前页面的视频暂停。这东西我在onPageScrolled做但我遇到了一个问题,因为这种方法被称为多次。

我已经搜索了android官方文档,但我还没有找到任何东西。

viewPager.addOnPageChangeListener(新ViewPager.OnPageChangeListener(){

@Override 
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 


    VideoView videoView = (VideoView) viewPager.findViewWithTag("videoView"+position); 
    if(videoView!=null){ 
     Log.d(TAG,"onPageScrolled "+position); 
     videoView.pause(); 
    } 

} 

@Override 
public void onPageSelected(int position) { 
    //Toast.makeText(getApplicationContext(),"onPageSelected "+position,Toast.LENGTH_SHORT).show(); 
    View view = (View) viewPager.findViewWithTag("view" + position); 
    if(view!=null) { 

     //ImageView thumbnail = (ImageView) view.findViewById(R.id.fullScreenVideoThumbnail); 
     //thumbnail.setVisibility(View.GONE); 

     Log.d(TAG,"onPageSelected Position: "+position); 
     VideoView videoView = (VideoView) view.findViewById(R.id.fullScreenVideoFullVideo); 
     videoView.bringToFront(); 
     videoView.start(); 
    } 



} 

@Override 
public void onPageScrollStateChanged(int state) { 
    //Toast.makeText(getApplicationContext(),"onPageScrollStateChanged",Toast.LENGTH_SHORT).show(); 
} 

});

回答

0

您可以再次检查videoView!= null,以检查视频是否已暂停。如果是,那就什么都不做,如果不是,请暂停它。这将确保无论该方法调用多少次只暂停视频一次

+0

谢谢。你给了我一个主意。而不是你说我使用的** onPageSelected位置**保存为变量,然后在** onPageScrolled ** – kamboj

+0

内比较它是否需要视频在滚动上暂停?如果每次使用onPageSelected选择页面,它都会暂停视频。但我想我可能误解了你的帖子,下次会更清楚。无论如何,你的欢迎 –