I want to create a list ViewPager.
I use a ListViewmanaged Adapterone in which a viewPager is created for each list item.
Here's the main action (which extends FragmentActivity):
list = (ListView)findViewById(R.id.listView1);
titles = new String[]{"A","B","C","D","E","F","G","H"};
descr = new String[]{"Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet","Lorem ipsum dolor sit amet"};
FragmentManager fm = getSupportFragmentManager();
adp = new ListAdapter(titles,descr,fm,context);
list.setAdapter(adp);
ListAdapter:
public class ListAdapter extends BaseAdapter{
Context c;
String[] ts , ds;
FragmentManager fm;
List<Fragment> frags;
Activity act;
public ListAdapter(String[] _ts , String[] _ds , FragmentManager _fm ,Context _c){
ts = _ts;
ds = _ds;
fm = _fm;
c = _c;
}
@Override
public int getCount() {
return ts.length;
}
@Override
public Object getItem(int position) {
return ts[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null){
LayoutInflater inflater = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.item_list_pager, null);
viewHolder = new ViewHolder();
viewHolder.mPager = (ViewPager)convertView.findViewById(R.id.pager);
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
frags = new ArrayList<Fragment>();
frags.add(FragmentItemList.newInstance(ts[position],ds[position], c));
frags.add(FragmentItemDelete.newInstance(ts[position],c));
ScreenSlidePagerAdapter ad = new ScreenSlidePagerAdapter(fm,frags);
viewHolder.mPager.setAdapter(ad);
return convertView;
}
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter{
private List<Fragment> fragments;
public ScreenSlidePagerAdapter(android.support.v4.app.FragmentManager fragmentManager , List<Fragment> fragments) {
super(fragmentManager);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
}
public class ViewHolder{
public ViewPager mPager;
}
}
When I launch the application, only the first element is created correctly, the rest are empty, for example, the following image

LogCat gives me this error:
05-14 15:30:32.816: W/View(18767): requestLayout() improperly called by android.support.v4.view.ViewPager{41f9e6f8 VFED.... ......ID 0,0-540,150
Typically, this error is caused by the ListView property fastScrollEnabled. I did not install it, but I disabled it anyway, but the problem still remains.
Any suggestions?