2

I have activity and 3 fragments. I use PagerSlidingTabStrip for suport tabs. Adapter:

public class MyPagerAdapter extends FragmentStatePagerAdapter {
    ...
    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return new Fragment1();
            case 1:
                return new Fragment2();
            case 2:
                return new Fragment3();
        }
        return null;
    }
    ...
}

Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    final ViewPager pager = (ViewPager) findViewById(R.id.pager);
    final MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
    pager.setAdapter(pagerAdapter);
    pager.setCurrentItem(1);

    final int pageMargin = (int) applyDimension(COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics());
    pager.setPageMargin(pageMargin);

    tabs.setViewPager(pager);
    tabs.setOnPageChangeListener(listener);
    tabs.setTextColor(Color.rgb(255, 255, 255));
    tabs.setIndicatorColor(Color.parseColor("#FF96AA39"));
}

When app is loading first time getItem is executed 3 times. What is correct. First fragment is shown. Then after change roration getItem for first fragment is not executed. But when I switch to secons or third one getItem is executed.

Could you help me why getItem is not called for first fragment when screen orientation was changed?

vetalitet
  • 703
  • 2
  • 10
  • 25
  • Did you find a solution yet? I'm dealing with the exact same thing, but since the question is over a month old I'm hoping you have something :) – copolii Mar 27 '15 at 18:57
  • Actually I don't remember how I solved this issue, but maybe u can try to use setOffscreenPageLimit method of ViewPager component. Maybe later I'll find correct solution in source code. – vetalitet Mar 29 '15 at 18:59

0 Answers0