在上篇的ViewPager
一文中,我们简单了解了ViewPager
的一种实现方式。接着,我们看看如何实现它的自动滚动效果。因为在一些场景中需要这种效果,如广告条。
思路比较简单:
viewPager
的viewPager.setCurrentItem
来设置当前的Item
;handler
来进行定时调取移动项目;而之前的下边的指示点的变化是跟着viewPager
的事件来的,即:
class MyListener implements ViewPager.OnPageChangeListener{
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
for(int i=0;i<datas.length;i++){
linearLayout.getChildAt(i).setEnabled(false);
}
linearLayout.getChildAt(position).setEnabled(true);
}
@Override
public void onPageSelected(int position) {}
@Override
public void onPageScrollStateChanged(int state) {}
}
所以在直接使用viewPager.setCurrentItem
方法来进行设置的时候,可以实现相关的联动。
具体的设置如下:
private Handler handler = new Handler();
private void autoScroll(){
handler.postDelayed(new Runnable() {
@Override
public void run() {
int cur_item = viewPager.getCurrentItem();
cur_item = (cur_item + 1) % datas.length;
viewPager.setCurrentItem(cur_item);
// 使之循环
handler.postDelayed(this, 2000);
}
}, 2000);
}