FragmentStatePagerAdapter的使用

本文介绍如何使用FragmentStatePagerAdapter与ViewPager结合展示多个Fragment。通过实例展示了如何定义FragmentStatePagerAdapter子类并实现getCount()与getItem()方法,从而在界面上动态加载不同的Fragment。

从名字就可以看出,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);






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Barry__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值