wallen
wallen

Reputation: 311

How to loop (from last fragment to first) in a FragmentStatePagerAdapter

I've written this class that extends FragmentStatePagerAdapter in order to swipe between views. Now I need to make the swiping list circular so that swiping after the last fragment would display the first fragment. I haven't found a way to properly do that, any help?

Here's the code of the adapter:

public class DetailsPagerAdapter extends FragmentStatePagerAdapter {

List<Detail> details=null;

public DetailsPagerAdapter(FragmentManager supportFragmentManager, List<Detail> details) {
    super(supportFragmentManager);
    this.details=details;
}

@Override
public Fragment getItem(int i) {
    System.out.println("Fetching item at position "+i);
    Fragment fragment = new DetailsFragment();

    Bundle args = new Bundle();
    args.putString("img",details.get(i).getImageFileName());
    args.putString("desc",details.get(i).getDescription());
    fragment.setArguments(args);
    return fragment;
}

public int getCount() {
    return details.size();
}

}

Upvotes: 0

Views: 903

Answers (1)

Mohammad Ersan
Mohammad Ersan

Reputation: 12444

in your Adapter, try something like that

        @Override
        public Fragment getItem(int pos) {
            pos = pos % details.size();
            ....
        }

        @Override
        public int getCount() {
            return  99999;
        }

Upvotes: 2

Related Questions