如何在 ViewPager Android 中更改页面?

How to change page in ViewPager Android?

我在我的应用程序中使用 View Pager。我需要每 1 分钟触发一次页面更改。我知道如果用户滑动,就会发生页面更改。但是如果我们必须触发它,有没有API。

How to change page in ViewPager Android?

使用 ViewPager.setCurrentItem(int item) 以编程方式更改 ViewPager 页面。

其中 item 是要在 ViewPager 中设置为当前项目的页面的索引。

private int mInterval = 5000; // 5 seconds by default, can be changed later
  private Handler mHandler;

  @Override
  protected void onCreate(Bundle bundle) {
    ...
    mHandler = new Handler();
    startRepeatingTask();
  }

  Runnable mStatusChecker = new Runnable() {
    @Override 
    public void run() {
      updatePage(); //this function can change value of mInterval.
      mHandler.postDelayed(mStatusChecker, mInterval);
    }
  };

  void startRepeatingTask() {
    mStatusChecker.run(); 
  }

  void stopRepeatingTask() {
    mHandler.removeCallbacks(mStatusChecker);
  }
private void updatePage(){
 viewPager.setCurrentItem(pageno)
}
Handler handler = new Handler();
handler.post(new Updater());

class Updater implements Runnable {
    public void run() {
        mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1);
        if (mViewPager.getAdapter().getCount() - 1 > mViewPager.getCurrentItem()){
            handler.postDelayed(new Updater, 60000);
        }
    }
}

您可以使用 CountDownTimer 使用下面的示例 easily.Change 每 60 秒后的页面

   class MyTimer extends CountDownTimer{

         public MyTimer(long millisInFuture, long countDownInterval) {
             super(millisInFuture, countDownInterval);
         }

         @Override
         public void onTick(long l) {

         }

         @Override
         public void onFinish() {
            viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
            myTimer.start();
         }

    MyTimer myTimer = new MyTimer(1000*60, 1000);
    myTimer.start();