如何在 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();
我在我的应用程序中使用 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();