最近搞了一個查看圖片的viewpager ,裏面放的是pagerAdapter ,但是發現當刪除 某個頁面後調用notifyDataSetChanged() 界面沒發生變化,後來搞了搞,發現要這麼寫PagerAdapter :
主要是destroyItem這個方法重寫寫錯了。。應該這樣:
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
view = null;
}
完整的adapter 如下:
class PhotoAdapter extends PagerAdapter {
private int mChildCount = 0;
@Override
public int getCount() {
if (viewList.size() > 0 && viewList != null) {
return viewList.size();
}
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// container.removeView(viewList.get(position));
View view = (View) object;
container.removeView(view);
view = null;
}
}