2

我有活动和 3 个片段。我使用 PagerSlidingTabStrip 来支持标签。适配器:

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;
    }
    ...
}

活动

@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"));
}

当应用程序第一次加载时getItem执行 3 次。什么是正确的。显示了第一个片段。然后在第一个片段的更改循环后getItem不执行。但是当我切换到秒或第三个时getItem执行。

你能帮我为什么当屏幕方向改变时没有为第一个片段调用 getItem 吗?

4

0 回答 0