ответ

1

Вы можете использовать методы getCount() и getItem(int) для повторения всех фрагментов в вашем FragmentPagerAdapter. Например:

List<Fragment> allFragments = new LinkedList<Fragment>(); 
for (int i = 0; i < adapter.getCount(); i++) { 
    Fragment f = adapter.getItem(i); 
    allFragments.add(f); 
} 

См PagerAdapter и FragmentPagerAdapter классов для объяснения того, как эти методы работают.

+0

Thansk @Mike. в методе getItem (int i) адаптера я перехожу к нему, чтобы предоставить новый MyFragment_i(); для разных i (чтобы иметь 3 diff-фрагмента для 3 вкладок/swipes). Итак, если я снова вызову getItem (i), не создаст ли новый фрагмент и не вернет это вместо существующего фрагмента? – dowjones123

+0

Это зависит от вашей реализации. Если 'getItem()' всегда возвращает новый элемент, то да, но если он кэширует его на некоторой карте, как «HashMap», то для каждого типа фрагмента возвращается один экземпляр. Кроме того, если вы используете коллекцию для хранения ваших фрагментов, вы можете просто получить доступ к коллекции напрямую, чтобы получить список всех дочерних фрагментов (это то, что вы задали изначально). –

+0

Думаю, я получил его сейчас. Итак, в реализации, например http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html, где getItem() возвращает newInstance из фрагмента - я бы предположил, что переключения вкладок после всех 3 вкладок были просмотрены один раз, не вызывает метод getItem() (если я устанавливаю setOffscreenPageLimit (2))? – dowjones123

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