2017-01-11 2 views
0

У меня есть ViewPager с FragmentPagerAdapter. ViewPager имеет много страниц, когда я провёл его, будут вызваны некоторые методы фрагмента. Создаю новый вид в 'onCreateView' и запустим данные в 'onActivityCreated'. , но он выглядит как вид, который автоматически восстановит его статус при его воссоздании.. FragmentPagerAdapter восстановит статус просмотра автоматически?

Я имею в виду: у пейджера 4 страницы. Я просматриваю список в нижней части страницы на странице 1, и я прокручиваю пейджер до четвертого, а затем прокручиваю его до первого. список внизу показан внизу. но на самом деле listview является новым. Зачем?

код:

class MyFragment extends Fragment{ 
    View onCreateView(){ 
     ListView listview=new ListView(); 
     return listview; 
    } 

    void onActivityCreated(){ 
     List list=getdata(); 
     listview.setAdapter(new Adapter(list)); 
    } 
} 

кстати: Я не придерживаюсь мнения в моем фрагменте. Я не называю ViewPager.setOffscreenPageLimit(). Я создаю новый вид в onCreateView. Я создаю новый адаптер в onActivityCreated.

поэтому почему список может располагаться в нижней части (любая позиция, я прокручиваю в последний раз) автоматически?

Я не нашла для этого кода, чтобы сделать это в Fragment или FragmentPagerAdapter.

ответ

0

В FragmentManagerImpl существует метод с именем moveToState, он вызывается методом saveFragmentViewState(), когда фрагмент перемещается, будет вызываться метод «saveHierarchyState» представления фрагмента, поэтому состояние сохраняется и удерживается фрагмент. И instancemanagerimple автоматически восстановит его.

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