我是中国人,我的英语很差。当ViewPager
使用ListView
ListView
中添加了ViewPager
并且PagerAdapter
模式为POSITION_NONE时,我遇到了问题,我保存了充气ListView
1}}在PagerAdapter中使用List,但奇怪的现象是当我调用pagerAdapter.notifyDataSetChanged时ListView
滚动到第一个位置。这是代码:
private class MyAdapter2 extends PagerAdapter {
@Override
public int getCount() {
return 4;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(listviews[position], 0);
return listviews[position];
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
答案 0 :(得分:0)
您可以使用此逻辑...在调用dataSetChanged之前,在argv[2]
变量中存储此listview状态,并在dataSetChanged时间之后从您在parcelable变量中记录的值恢复listview
喜欢这个..
Parcelable
我从here
找到了另一种方法 Parcelable scrollPos=listview.onSaveInstanceState();
// call your pagerAdapter.notifyDataSetChanged
if(scrollPos != null)
{
listview.onRestoreInstanceState(scrollPos);
}