android - Fragment within ViewPager not showing immediately -


i have main fragment viewpager inside it. viewpager has 2 pages (fragments). works fine.

when start activty, main fragment shown , want show (ie. load data) of first paged fragment.

currently have:

@override public void onviewcreated(view view, bundle savedinstancestate) {     super.onviewcreated(view, savedinstancestate);     viewpager.setcurrentitem(0); }  @override public void onpageselected(int position) {     fragment fragment = (fragment) pageradapter.instantiateitem(viewpager, position);     if (fragment instanceof ipagedfragment) {         ((ipagedfragment) fragment).onshown();     } } 

this pager adapter:

private static class pageradapter extends fragmentpageradapter {     public pageradapter(android.support.v4.app.fragmentmanager fm) {         super(fm);     }      @override     public android.support.v4.app.fragment getitem(int position) {         switch (position) {             case 0:  return frag1.newinstance();             case 1:  return frag2.newinstance();             default: return null;         }     }     //other overrides... } 

however, calling setcurrentitem not call onpageselected.

how can force first fragment call onshown method?

you right, viewpager not call onpageselected first item.

also setcurrentitem not trigger onpageselected cause current page of viewpager has not changed. (the initial page 0) take closer in source code (setcurrentiteminternal) if want know how works.

a solution call onpageselected(0) directly instead of setcurrentitem.


Comments