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);
}
};