android - FragmentStatePagerAdapter instanciates all fragments after updating to ADT 22 -
my app working android support library rev 12 when updated revision 13, fragmentstatepageradapter started driving me nuts:
my activity:
import android.app.fragment; import android.app.fragmentmanager; import android.support.v13.app.fragmentstatepageradapter; import android.support.v4.view.viewpager; ... @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); madapter = new myadapter(getfragmentmanager()); mpager = (viewpager)findviewbyid(r.id.main_frame_pager); mpager.setadapter(madapter); } public static class myadapter extends fragmentstatepageradapter { public myadapter(fragmentmanager fm) { super(fm); } @override public int getcount() { return 5; } @override public fragment getitem(int position) { log.i(tag, "getitem() -> new fragment @ position " + position); switch (position) { case 0: identityfragment idfrag = new identityfragment(); return idfrag; case 1: skillfragment skfrag = new skillfragment(); return skfrag; case 2: experiencesfragment expfrag2 = new experiencesfragment(); return expfrag2; case 3: educationfragment edufrag = new educationfragment(); return edufrag; case 4: miscfragment mfrag = new miscfragment(); return mfrag; } return null; } } all fragments instanciated (logcat displays "getitem() -> new fragment @ position [0 -> 4]") while 0 , 1 expected (offscreenpagelimit = 1)
make sure viewpager declaration has not layout_width="0dip". use instead :
<android.support.v4.view.viewpager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent"> ... </android.support.v4.view.viewpager> it appeared in 13rd revision of support library since they're more strict can , cannot viewpager.
Comments
Post a Comment