我有活动和 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 吗?