2015-02-21 3 views
0

Как обрабатывать автоматическое считывание страниц с просмотром страниц вместе с ручным удалением , т. Е. Набор из 10 страниц находится в режиме просмотра каждого слайда через 3 секунды, но проблема заключается в том, что пользователь просматривает страницу, на которой он перемещается на страницу последовательности, что мне нужно следовать. 1> если пользователь просматривает две последовательные страницы, не должен возвращаться. 2> Таймер должен приостанавливаться, когда пользователь просматривает страницы, и таймер должен перезапускаться с экрана, удерживающего страницу. код указан какAndroid viewpager automatic slide

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.ten); 
     timer = new Timer(); 


viewPager.setAdapter(adapter); 

     viewPager.setCurrentItem(0); 

     // Timer for auto sliding 

     timer.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         if (count <= alQuestion.size()) { 
          viewPager.setCurrentItem(count, true); 
          count++; 
         } else { 
          viewPager.setCurrentItem(count); 
         } 
        } 
       }); 
      } 
     }, 500, 3000); 

ответ

1

Я недавно столкнулся с той же проблемой и получил решение, написав ниже функцию.

public void autoSlider(final ViewPager viewPager) { 

    rr = new Runnable() { 
     public void run() { 
      int pos = viewPager.getCurrentItem(); 
      if(pos > i && pos != slidingImages.length - 1){ 
       i = pos; 
       i++; 
         } 
      else if(pos < (i-1)){ 
       i = pos; 
       i++; 
      } 
      viewPager.setCurrentItem(i, true); 
      i++; 
      if (i >= slidingImages.length) 
       i = 0; 
      autoSlider(viewPager); 
     }}; 
    handler.postDelayed(rr, 3000); 
} 

Надеюсь, это вам поможет.

0

создать класс TimerTask и планировать его в классе Timer

private class SliderTimer extends TimerTask { 

    @Override 
    public void run() { 
     SliderActivity.this.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       if (viewPager.getCurrentItem() < color.size() - 1) { 
        viewPager.setCurrentItem(viewPager.getCurrentItem() + 1); 
       } else { 
        viewPager.setCurrentItem(0); 
       } 
      } 
     }); 
    } 
} 


Timer timer = new Timer(); 
timer.scheduleAtFixedRate(new SliderTimer(), 4000, 6000) 

Пожалуйста, следуйте по этой ссылке на шаг прощальной шагом руководящего https://medium.com/@shaktisinh/auto-slider-with-indicator-in-android-a28153d42125