我的应用程序正在使用android支持库rev 12但是当我更新到版本13时,我的FragmentStatePagerAdapter开始让我疯狂:
我的活动:
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 at 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;
}
}
我的所有片段都是实例化的(LogCat显示&#34; getItem() - &gt;位置[0 - &gt; 4]&#34;)的新片段,而预期只有0和1(offscreenPageLimit = 1)< / p>
答案 0 :(得分:2)
确保您的ViewPager声明没有layout_width="0dip"
。请改用:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
</android.support.v4.view.ViewPager>
它出现在支持库的第13版中,因为他们对你可以做什么以及你不能用ViewPager做什么更加严格。