今天最近写项目的时候用到了ViewPager,设置了PagerAdapter,可在刷新界面的时候没有效果,即使调用了apdatper的notifyDataSetChanged()
我的pagerAdapter实现是
<span style="font-size:18px;">public class BrowserPageAdapter extends PagerAdapter{
private final int PAGE_COUNT = 8;
private Context context;
private ArrayList<View> listViews = new ArrayList<View>();
public BrowserPageAdapter(Context context) {
this.context = context;
initViews();
}
public void initViews()
{
for (int i = 0; i < PAGE_COUNT; i++) {
View view = View.inflate(context, R.layout.cartoon_pager_sub_view, null);
listViews.add(view);
}
}
@Override
public int getCount() {
return listViews.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = listViews.get(position);
ListView listView = (ListView) view.findViewById(R.id.list_view);
BrowserListAdapter listAdapter = new BrowserListAdapter(context);
listView.setAdapter(listAdapter );
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
System.out.println("________destroyItem_________");
container.removeView(listViews.get(position));
}
}</span>
后来在网上找了方法,说要想实现刷新需要在自己定义的PagerAdapter中实现
- @Override
- public int getItemPosition(Object object) {
- return POSITION_NONE;
- }
API里面有说明:
int android.support.v4.view.PagerAdapter.POSITION_NONE = -2 [0xfffffffe]
然后刷新时调用PagerAdpter的 notifyDataSetChanged()就可以刷新PagerViewd的界面了