2016-12-15 6 views
-1

У меня есть viewpager с VideoView.пытается понять 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 position ** сохранение в качестве переменной, а затем сравнить ее в ** onPageScrolled ** – kamboj

+0

Вам не нужно, чтобы видео останавливалось на свитке? Если вы используете onPageSelected каждый раз, когда выбрана страница, она приостанавливает видео. Но я думаю, что, возможно, неправильно понял ваш пост, это помогло бы быть более ясным в следующий раз. Ваш прием в любом случае –

Смежные вопросы