FragmentStatePagerAdapter的使用

从名字就可以看出,FragmentStatePagerAdapter就是用Fragment作为ViewPager的view来显示

所以使用方法和ViewPager差不多,但也有区别

总体的思路是,在主布局中有个帧布局FrameLayout用来Fragment替换使用,然后再适当的时机,使用FragmentStatePagerAdapter得到想要的

Fragment来替换FrameLayout就行了



    android:id="@+id/layout_content"

    android:layout_width="match_parent"

    android:layout_height="0dip"

    android:layout_weight="1.0"

    />


FragmentStatePagerAdapter对象

FragmentStatePagerAdapter fragmentStatePagerAdapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) {

//返回的是fragment对象的个数

@Override

public int getCount() {

return 5;

}

//根据索引去获取fragment对象

@Override

public Fragment getItem(int arg0) {

BaseFragment baseFragment = null;

switch (arg0) {

case 0:

baseFragment = new FunctionFragment();

break;

case 1:

baseFragment = new NewCenterFragment();

break;

case 2:

baseFragment = new SmartServiceFragment();

break;

case 3:

baseFragment = new GovAffairsFragment();

break;

case 4:

baseFragment = new SettingFragment();

break;

}

return baseFragment;

}

};

其中BaseFragment是Fragment的子类,FunctionFragment等是BaseFragment的子类,所以他们都可以替换FrameLayout


得到FarmeLayout,并用Fragment替换FrameLayout

//得到帧布局

private FrameLayout layout_content;

layout_content = (FrameLayout) findViewById(R.id.layout_content);

//从fragmentStatePagerAdapter得到Fragment替换帧布局

//先取出Fragment

//参数:1,fragment需要去替换的帧布局对象2,需要去替换帧布局对应fragment的索引值(传递给getItem的参数)

Fragment fragment = (Fragment) fragmentStatePagerAdapter.instantiateItem(layout_content,index);

//2,替换操作  第三个参数为替换帧布局对应的fragment对象

fragmentStatePagerAdapter.setPrimaryItem(null, 0, fragment);

//3,事物提交

fragmentStatePagerAdapter.finishUpdate(null);

你可能感兴趣的:(FragmentStatePagerAdapter的使用)