my hierarchy this.a viewpager included 3 pages(all fragment),called newfragment,involedfragment , mefragment,and outside viewpager set radiobutton switch between newfragment , fragment named hotfragment,for reason used hide(),show()to manage switch,here is![enter image description here code
radiobutton check listener
private class checkedchangelistener implements radiogroup.oncheckedchangelistener { @override public void oncheckedchanged(radiogroup group, int checkedid) { switch (checkedid) { case r.id.button_new: mfragmentatpos0 = newfrag; fragtransaction = fragmentmanager.begintransaction(); if(!newfrag.isadded()){ fragtransaction.hide(hotfrag).add(r.id.mainviewpager,newfrag).commit(); } else{ fragtransaction.hide(hotfrag).show(newfrag).commit(); } mfragmentatpos0 = newfrag; toast.maketext(mainactivity.this, "new", toast.length_short).show(); break; case r.id.button_hot: fragtransaction = fragmentmanager.begintransaction(); if(!hotfrag.isadded()){ fragtransaction.hide(newfrag).add(r.id.mainviewpager,hotfrag).commit(); } else{ fragtransaction.hide(newfrag).show(hotfrag).commit(); } mfragmentatpos0 = hotfrag; toast.maketext(mainactivity.this, "hot", toast.length_short).show(); break; } } } and fragmentpageradapter
private class mypageradapter extends fragmentpageradapter { private final fragmentmanager mfragmentmanager; public mypageradapter(android.support.v4.app.fragmentmanager fm) { super(fm); mfragmentmanager = fm; } @override public fragment getitem(int position) { if(position == 0){ log.d("check","111"); return mfragmentatpos0; } else if(position == 1){ return(new involvefragment()); } else { return(new mefragment()); } } @override public int getcount() { return 3; } @override public int getitemposition(object object) { if (object instanceof newfragment && mfragmentatpos0 == hotfrag) return position_none; return position_unchanged; } } my problem hotfrag didn't show,but worked (i put log code in hotfrag check),and viewpager works fine,i stucked here several hours still got no way solve it.
there answer found quite similar,it's here replace fragment inside viewpager, worked hide,show, not replace.
anyone help?thanks lot!
Comments
Post a Comment