Android TabLayout not reloading fragments -


i noticed tablayout loads fragments has display once, when replace fragment containing tablayout , switch it, not recreate fragments holds, , no longer displaying anything. design or doing wrong? using outer fragment in navigationdrawer, , when user switches fragment , back, tab fragments empty because don't recreated. noticed tabs act strange after switch fragment containing them (they white line below jumps , can hold still between 2 tabs without touching screen)

the code i'm using:

public class fragment1 extends fragment {     private static viewpager viewpager;     private static tablayout tablayout;      @override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {         utils.changelanguage(getactivity());          final context contextthemewrapper = new contextthemewrapper(getactivity(), r.style.linesoverlay);          layoutinflater localinflater = inflater.cloneincontext(contextthemewrapper);          view view = localinflater.inflate(r.layout.fragment1, container, false);         viewpager = (viewpager) view.findviewbyid(r.id.viewpager);         tablayout = (tablayout) view.findviewbyid(r.id.tabs);          return view;     }      @override     public void onactivitycreated(bundle savedinstancestate) {         super.onactivitycreated(savedinstancestate);          setupviewpager(viewpager);         tablayout.setupwithviewpager(viewpager);     }      private void setupviewpager(viewpager viewpager) {         linestabsadapter adapter = new linestabsadapter(getactivity().getsupportfragmentmanager());         adapter.addfragment(new fragment2(), "fragment 1");         adapter.addfragment(new fragment3(), "fragment 2");         viewpager.setadapter(adapter);     }      public static class fragment2 extends fragment {          @override         public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {              view view = inflater.inflate(r.layout.activity_lines_driving, container, false);              return view;         }          @override         public void onactivitycreated(bundle savedinstancestate) {             super.onactivitycreated(savedinstancestate);         }     }      public static class fragment3 extends fragment  {          @override         public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {              view view = inflater.inflate(r.layout.activity_lines_all, container, false);              return view;         }          @override         public void onactivitycreated(bundle savedinstancestate) {             super.onactivitycreated(savedinstancestate);         }     } 

linestabsadapter:

public class linestabsadapter extends fragmentpageradapter {     private final list<fragment> fragments = new arraylist<>();     private final list<string> fragmenttiles = new arraylist<>();      public linestabsadapter(fragmentmanager fm) {         super(fm);     }      public void addfragment(fragment fragment, string title) {         fragments.add(fragment);         fragmenttiles.add(title);     }      @override     public fragment getitem(int position) {         return fragments.get(position);     }      @override     public int getcount() {         return fragments.size();     }      @override     public charsequence getpagetitle(int position) {         return fragmenttiles.get(position);     } } 

i had same problem , answer in page solved problem. use getchildfragmentmanager() instead of getsupportfragmentmanager()

android tablayout not display contents anymore fragment switched


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -