I want to implement a list of ViewPagers. Each ListView item is a ViewPager. It still works. My problem is that I cannot maintain ViewPager state. For example: when I change the page of the first ViewPager in the list, scroll down until the first ViewPager is no longer visible and then scroll up again, the first ViewPager will display its first page again.
I wrote two adapters: one for ListView and one for ViewPager. I am trying to recycle the view from the convertView parameter of the getView method into a ListAdapter. Not sure if I am doing this correctly and don’t know how to do this in the ViewPagerAdapter.
Any ideas?
here is my code:
getView from MyListAdapter:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mRowView = inflater.inflate(R.layout.listitem, parent, false);
}else{
mRowView=convertView;
}
switch(position){
case 0:
ViewPagerAdapter fussballAdapter = new ViewPagerAdapter(mContext,"Fussball");
ViewPager fussballPager = (ViewPager) mRowView.findViewById(R.id.viewpager1);
fussballPager.setAdapter(fussballAdapter);
break;
case 1:
ViewPagerAdapter handballAdapter = new ViewPagerAdapter(mContext,"Handball");
ViewPager handballPager = (ViewPager) mRowView.findViewById(R.id.viewpager1);
handballPager.setAdapter(handballAdapter);
break;
default:
}
return mRowView;
}
instantiateItem from ViewPagerAdapter:
@Override
public Object instantiateItem(View pager, int position) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch(position){
case 0:
oneLayout=inflater.inflate(R.layout.table_layout, null);
break;
case 1:
oneLayout=inflater.inflate(R.layout.table_layout_second, null);
break;
default:
oneLayout=inflater.inflate(R.layout.table_layout, null);
break;
}
((ViewPager)pager).addView( oneLayout, 0 );
return oneLayout;
}
Thank!:)