I need to have a ViewPager (similar to a horizontal gallery) inside a RecyclerView that displays the list vertically. Each line of the RecyclerView will have a ViewPager that will allow you to scroll between some images. ViewPager will also support click events that will be passed to the parent RecyclerView.
I currently have the following implementation:
List adapter:
@Override public void onBindViewHolder(MyHolder holder, int position) { super.onBindViewHolder(holder, position); Item listItem = get(position); ... GalleryAdapter adapter = new GalleryAdapter(getActivity().getSupportFragmentManager(), item.mediaGallery); holder.imageGallery.setAdapter(adapter); ... }
Gallery Adapter:
public class GalleryAdapter extends FragmentStatePagerAdapter { private final List<Item.Gallery> mItems; @Bind(R.id.gallery_item) ImageView galleryView; public SearchResultsGalleryPagerAdapter(FragmentManager fm, @NonNull ArrayList<Item.Gallery> mediaGallery) { super(fm); mItems = mediaGallery; } @Override public Fragment getItem(int position) { GalleryFragment fragment = GalleryFragment.newInstance(mItems.get(position)); ... return fragment; } @Override public int getCount() { return null == mItems ? 0 : mItems.size(); } @Override public int getItemPosition(Object object) {
Gallery fragment:
public class GalleryFragment extends Fragment { private static final String GALLERY_ITEM_BUNDLE_KEY = "gallery_item_bundle_key"; @Bind(R.id.gallery_item) ImageView mGalleryView; private Item.Gallery mGalleryItem;
The problem I am facing is that the ViewPager fragments are not created and displayed correctly. Sometimes they appear after a manual scroll (but not always), in most cases they do not appear at all.
Does anyone have an idea about what I implemented incorrectly?
android android-fragments android-viewpager fragmentstatepageradapter android-recyclerview
Ionut negru
source share