android - Tab navigation in new HoloEverywhere not displays fragment after screen rotation -
yesterday downloaded new holoeverywhere library. currently, have problem tab navigation after screen rotation.
my home activity:
public class mainactivity extends activity implements tablistener { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setuptabs(); } private void setuptabs() { string[] titles = { "first", "second", }; actionbar supportactionbar = getsupportactionbar(); (int = 0; < titles.length; i++) { actionbar.tab tab = supportactionbar.newtab(); tab.settext(titles[i]); tab.settag(myfragment.tag); tab.settablistener(this); supportactionbar.addtab(tab, false); } supportactionbar.setnavigationmode(actionbar.navigation_mode_tabs); supportactionbar.setselectednavigationitem(0); } @override public void ontabselected(tab tab, fragmenttransaction fragmenttransaction) { final string fragmenttag = tab.gettag().tostring(); fragment fragment = getsupportfragmentmanager().findfragmentbytag(fragmenttag); if (fragment == null) { fragment = new myfragment(); fragmenttransaction.add(android.r.id.content, fragment, fragmenttag); } else { fragmenttransaction.attach(fragment); } } @override public void ontabunselected(tab tab, fragmenttransaction fragmenttransaction) { fragment fragment = getsupportfragmentmanager().findfragmentbytag((string) tab.gettag()); if (fragment != null) { fragmenttransaction.detach(fragment); } } @override public void ontabreselected(tab tab, fragmenttransaction fragmenttransaction) { } }
and fragment class.
public class myfragment extends fragment { public static final string tag = myfragment.class.getcanonicalname(); @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = new view(getactivity()); view.setbackgroundcolor(color.black); return view; } }
when rotate screen fragment not displaying. displays when select tab (which not selected) manually.
i solve problem. post code here , see if can :d
if (savedinstancestate == null){ tabhomefragment homefragment = new tabhomefragment(); fragmenttransaction transaction = getsupportfragmentmanager().begintransaction(); transaction.replace(r.id.container, homefragment, "home_fragment").commit(); }else{ tabhomefragment homefragment = (tabhomefragment) getsupportfragmentmanager().findfragmentbytag("home_fragment"); }
those code located in oncreate method. when device rotate , ortiention change, fragment recreate again. add if clase check if there 1 here.
but using normal fragment in android. hope can little.
Comments
Post a Comment