美文网首页
FragmentStatePagerAdapter的使用

FragmentStatePagerAdapter的使用

作者: y_2dbc | 来源:发表于2019-03-07 22:50 被阅读0次

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

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

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

    Fragment来替换FrameLayout就行了


    <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的使用

          本文链接:https://www.haomeiwen.com/subject/qfpkpqtx.html