android - Fragment's on CreateView is not called when using ViewPager -


i'm developing android application have viewpager in mainactivity, consisting of 3 fragments. problem follows, when swipe 3rd fragment, , 1st one, oncreateview of fragment 1 called want, however, if swipped 2nd fragment only, , returned 1st one, oncreateview not called! need find solution problem, spent hours trying find solution didn't know solve it. here's code related viewpager in mainactivity

    private void setupviewpager(final viewpager viewpager) {     final viewpageradapter adapter = new viewpageradapter(getsupportfragmentmanager());     adapter.addfrag(new voting(), "one");     adapter.addfrag(new dashboard(), "two");     adapter.addfrag(new chats(), "three");     myadapter=adapter;     viewpager.setadapter(adapter);     viewpager.setoffscreenpagelimit(0); }  private class viewpageradapter extends fragmentstatepageradapter {     private final list<fragment> mfragmentlist = new arraylist<fragment>();     private final list<string> mfragmenttitlelist = new arraylist<string>();      private viewpageradapter(fragmentmanager manager) {         super(manager);     }      @override     public fragment getitem(int position) {         log.i("getitem","getitem");         return mfragmentlist.get(position);     }       @override     public int getcount() {         return mfragmentlist.size();     }      private void addfrag(fragment fragment, string title) {         mfragmentlist.add(fragment);         mfragmenttitlelist.add(title);     }      //added newly     @override     public int getitemposition(object object){         return pageradapter.position_none;     }      @override     public charsequence getpagetitle(int position) {         return null;     } } 

this intended behavior fragmentpageradapter. if fragment created , still in memory, reattached viewpager. hence, reason why oncreateview(...) isn't called second time.

implementation of pageradapter represents each page fragment persistently kept in fragment manager long user can return page.

you're using fragmentstatepageradapter subclass of fragmentpageradapter, inherits behavior.

generally, it's not idea recreate view on every page change, expensive , can lead non smooth scrolling. if had logic in oncreateview(...) want run again on each fragment change, suggest looking viewpager.onpagechangedlistener.


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -