android - ViewPager's Fragments disappear -
i'm using drawerlayout
viewpagerindicator
, last won't work correctly drawerlayout
. once open application, viewpager displayed correctly once change fragments in drawerlayout viewpager's fragments disappear.
here's fragmentmanager:
fragmentmanager fragmentmanager = getsupportfragmentmanager(); switch (arg2) { case 0: contentfragment = new lebanon(); break; } fragmentmanager.begintransaction() .replace(r.id.content_frame, contentfragment).commit();
the second fragment , fourth in viewpager there , didn't disappear, while first, third , fifth disappear. what's wrong in code?
here's fragment:
@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { viewta = inflater.inflate(r.layout.simple_tabs, container, false); samsunglb = com.androidarabia.lebanon.samsunglb.newinstance(); htclb = com.androidarabia.lebanon.htclb.newinstance(); lglb = com.androidarabia.lebanon.lglb.newinstance(); sonylb = com.androidarabia.lebanon.sonylb.newinstance(); searchlb = com.androidarabia.lebanon.searchlb.newinstance(); this.getsherlockactivity().getsupportactionbar() .sethomebuttonenabled(true); prefs = this.getsherlockactivity().getsharedpreferences(prefname, context.mode_private); adapter = new googlemusicadapter(this.getsherlockactivity() .getsupportfragmentmanager()); pager = (viewpager) viewta.findviewbyid(r.id.pager); pager.setpagetransformer(true, new zoomoutpagetransformer()); indicator = (tabpageindicator) viewta.findviewbyid(r.id.indicator); pager.setcurrentitem(0); pager.setadapter(adapter); pager.setoffscreenpagelimit(4); indicator.setviewpager(pager); return viewta; } private void addtabs(viewpager pager2) { // todo auto-generated method stub pager2.setadapter(adapter); pager2.setoffscreenpagelimit(4); indicator.setviewpager(pager); } class googlemusicadapter extends fragmentstatepageradapter { public googlemusicadapter(fragmentmanager fm) { super(fm); notifydatasetchanged(); } @override public fragment getitem(int position) { switch (position) { case 0: return samsunglb; case 1: return htclb; case 2: return lglb; case 3: return sonylb; case 4: return searchlb; } notifydatasetchanged(); return testfragment.newinstance(content[position % content.length]); } @override public charsequence getpagetitle(int position) { return content[position % content.length].touppercase(); } @override public int getcount() { return content.length; } }
use getchildfragmentmanager()
googlemusicadapter
:
adapter = new googlemusicadapter(getchildfragmentmanager());
because fragments used viewpager
nested fragments.
Comments
Post a Comment