Android : on returning back to viewpager from fragment viewpager tabs increases with null views -


sorry if question posted. have seen many issues on topic problem different . in mainactivity load tabandviewpager fragment in container .that view pager contains 2 fragment works fine on start when load fragment in mainactivity container , press see 4 tabs instead of 2 , when swipe runtime exception thrown , app crashes . answers appreciated thanx

i posting of code here can see below tabviewpager fragment load in main container

public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {       if (rootview == null) {         rootview = inflater.inflate(r.layout.tab_view_pager, container, false);     }          tablayout = (tablayout) rootview.findviewbyid(r.id.tabs);          tablayout.addtab(tablayout.newtab().settext("public").seticon(r.drawable.ic_menu_camera));         tablayout.addtab(tablayout.newtab().settext("anonymous").seticon(r.drawable.ic_menu_camera));         tablayout.settabtextcolors(getresources().getcolor(android.r.color.darker_gray), getresources().getcolor(android.r.color.white));         tablayout.gettabat(0).seticon(r.drawable.ic_menu_camera);         tablayout.settabmode(tablayout.mode_fixed);         tablayout.settabgravity(tablayout.gravity_fill);          viewpager = (viewpager) rootview.findviewbyid(r.id.viewpager);          tablayout.addontabselectedlistener(new tablayout.ontabselectedlistener() {             @override             public void ontabselected(tablayout.tab tab) {                 viewpager.setcurrentitem(tab.getposition());                  (int = 0; < tablayout.gettabcount(); i++) {                     tablayout.gettabat(i).seticon(r.drawable.ic_menu_gallery);                 }                  tablayout.gettabat(tab.getposition()).seticon(r.drawable.ic_menu_camera);             }              @override             public void ontabunselected(tablayout.tab tab) {              }              @override             public void ontabreselected(tablayout.tab tab) {              }         });          //if viewpager in fragment use getchildfragman else getfragmanager         fspamain = new tabfspa(getchildfragmentmanager(), tablayout.gettabcount());          viewpager.setadapter(fspamain);         viewpager.addonpagechangelistener(new tablayout.tablayoutonpagechangelistener(tablayout));        return rootview;   } 

some code main activity

                protected void oncreate(bundle savedinstancestate) {                         super.oncreate(savedinstancestate);                         setcontentview(r.layout.activity_main);                           butterknife.inject(this);                         binddata();                         initialisenavbar(navbar);                          if(savedinstancestate != null) {                             fragment frag = (tabviewpager) getsupportfragmentmanager().findfragmentbytag("main");                             launchfragment(frag, "main");                         }                         else                         {                             launchfragment(new tabviewpager(), "main");                         }                      }          // code                    public void onbackpressed() {                         drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);                         if (drawer.isdraweropen(gravitycompat.start)) {                             drawer.closedrawer(gravitycompat.start);                         } else if (getfragmentmanager().getbackstackentrycount() > 0) {                             getsupportfragmentmanager().popbackstack();                         } else {                             super.onbackpressed();                         }                     }               // more code               private void launchfragment(fragment fragment, string fragment_tag) {                      fragmenttransaction ft = getsupportfragmentmanager().begintransaction();                     ft.setcustomanimations(r.anim.push_left_in, 0, 0, r.anim.push_left_out);                     ft.replace(r.id.container, fragment);                     // if not main fragment add stack handle button                     if (!fragment_tag.equals("main")) {                         if (ft.isaddtobackstackallowed()) {                             ft.addtobackstack(null);                         }                     }                     ft.commit();                 }      // launching new fragment in container        private void launchnavmenu(int pos, boolean islogin) {             if (islogin) {                 switch (pos) {                     case 1:                         show.message(this, "home clicked");                         break;                     case 2:                         show.message(this, "profile clicked");                         launchfragment(new profile(), "profile");                         break;                  }           }     } } 


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -