Я хочу реализовать список ViewPager. Каждый элемент ListView — это ViewPager. Это работает до сих пор. Моя проблема в том, что я не могу поддерживать состояние ViewPager. Например: когда я меняю страницу первого ViewPager в списке, прокручиваю вниз до тех пор, пока первый ViewPager больше не будет виден, а затем снова прокручиваю вверх, первый ViewPager снова показывает свою первую страницу.
Я написал два адаптера, один для ListView и один для ViewPager. Я пытаюсь переработать представление из параметра convertView метода getView в ListAdapter. Не уверен, правильно ли я это делаю, и понятия не имею, как это сделать в ViewPagerAdapter.
Есть идеи?
вот мой код на данный момент:
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://Fussball
ViewPagerAdapter fussballAdapter = new ViewPagerAdapter(mContext,"Fussball");
ViewPager fussballPager = (ViewPager) mRowView.findViewById(R.id.viewpager1);
fussballPager.setAdapter(fussballAdapter);
break;
case 1://Handball
ViewPagerAdapter handballAdapter = new ViewPagerAdapter(mContext,"Handball");
ViewPager handballPager = (ViewPager) mRowView.findViewById(R.id.viewpager1);
handballPager.setAdapter(handballAdapter);
break;
//.../
default:
//Do nothing
}
return mRowView;
}
instanceiateItem 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;
}
Спасибо! :)