您的位置:首页 > 其它

简单的ViewPager无限轮播

2017-03-16 15:57 323 查看

 ViewPager适配器继承 PagerAdapter代码如下:

class MyAdapter extends PagerAdapter{

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);

}

@Override
public Object instantiateItem(ViewGroup container, int position) {
position = position % listPic.size();
container.addView(listPic.get(position));
return listPic.get(position);
}

@Override
public int getCount() {
return Integer.MAX_VALUE;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}


ViewPager滑动监听代码如下:

pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}
@Override
public void onPageSelected(int position) {
position=position%listPic.size();
for (int i = 0; i < listShape.size(); i++) {
if (i == position){
listShape.get(i).setSelected(true);
}else{
listShape.get(i).setSelected(false);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});

}

其中用到Handler 代码如下 :

private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//获取总页数
int currentItem = pager.getCurrentItem();
currentItem++;
//设置页数
pager.setCurrentItem(currentItem);

handler.sendEmptyMessageDelayed(0,2000);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: