我在 viewpager 中有 4 个片段。和 FragmentStatePagerAdapter 在我的 viewpager 所在的活动中。FragmentStatePagerAdapter 的 newInstance() 方法将布局 id 作为参数,因此每个片段都有自己的布局:
ViewPager pager;
public class MainActivity extends FragmentActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager = (ViewPager) findViewById(R.id.viewPager);
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));}
private static class MyPagerAdapter extends FragmentStatePagerAdapter {
FragmentManager fm;
SparseArray<Fragment> registeredFragments = new SparseArray<Fragment>();
public MyPagerAdapter(FragmentManager fm) {
super(fm);
this.fm = fm;
}
@Override
public Fragment getItem(int pos) {
if(pos!=0){
pos = pos%4;
}
Fragment frag;
switch(pos) {
case 0: frag = FirstFragment.newInstance(R.layout.fire_room_wall1);
return frag; …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager fragmentstatepageradapter