2013-05-05 5 views
0

Я написал этот класс, который расширяет FragmentStatePagerAdapter, чтобы прокручивать между представлениями. Теперь мне нужно сделать круговой список прокрутки таким образом, чтобы прокрутка после последнего фрагмента отобразила первый фрагмент. Я не нашел способ правильно это сделать, любую помощь?Как петля (от последнего фрагмента к первому) в FragmentStatePagerAdapter

Вот код адаптера:

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(); 
} 

}

+0

Посмотрите на [ 'InfiniteViewPager'] (https://github.com/antonyt/InfiniteViewPager), который должен делать то, что вам нужно. –

ответ

1

в вашем адаптере, попробовать что-то вроде этого

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

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

Я не уверен, что что-то подобное будет работать. Я попытался сыграть с первым операндом, но, как и ожидалось, getCount() вернет значения в диапазон [0, details-size() - 1], который просто сократит коллекцию моих объектов и отобразит только часть фрагментов, которые я хочу показать , – wallen

+0

, пожалуйста, подождите, плохо исправьте мой ответ, у меня закружилась голова, когда я написал этот ответ :) –

+0

проверить мой ответ –

Смежные вопросы