【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2)
2012-11-02 15:09
579 查看
声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com
正文
由于没有找到嵌套FragmentActivity的方法,只好打算用不同的FragmentPagerAdapter来动态切换ViewPager的,如下:
/**
* 首页切换的三个界面
*/
private FragmentPagerAdapter mPagerAdapter1 = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(final int position) {
switch (position) {
case 1:
return new Fragment1();
case 2:
return new Fragment2();
default:
return new Fragment3();
}
}
@Override
public int getCount() {
return 3;
}
};
private FragmentPagerAdapter mPagerAdapter2 = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(final int position) {
switch (position) {
case 1:
return new Fragment4();
case 2:
return new Fragment5();
default:
return new Fragment6();
}
}
@Override
public int getCount() {
return 3;
}
};
然后很自然的想用ViewPager的setAdapter动态设置来切换, 结果发现不起作用!!莫有办法,只好先把Fragment清理一下,如下:
public void switchViewPages(FragmentPagerAdapter mAdapter, int[] tabs) {
if (mViewPager.getAdapter() != null) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Bundle bundle = new Bundle();
int index = mViewPager.getAdapter().getCount();
String key = "index";
while (index >= 0) {
bundle.putInt(key, index);
ft.remove(fm.getFragment(bundle, key));
index--;
}
ft.commit();
}
mViewPager.setAdapter(mAdapter);
查看了一下FragmentManager的源码,学会了getFragmen的用法,这个方法方便通过索引取Fragment。
正文
由于没有找到嵌套FragmentActivity的方法,只好打算用不同的FragmentPagerAdapter来动态切换ViewPager的,如下:
/**
* 首页切换的三个界面
*/
private FragmentPagerAdapter mPagerAdapter1 = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(final int position) {
switch (position) {
case 1:
return new Fragment1();
case 2:
return new Fragment2();
default:
return new Fragment3();
}
}
@Override
public int getCount() {
return 3;
}
};
private FragmentPagerAdapter mPagerAdapter2 = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(final int position) {
switch (position) {
case 1:
return new Fragment4();
case 2:
return new Fragment5();
default:
return new Fragment6();
}
}
@Override
public int getCount() {
return 3;
}
};
然后很自然的想用ViewPager的setAdapter动态设置来切换, 结果发现不起作用!!莫有办法,只好先把Fragment清理一下,如下:
public void switchViewPages(FragmentPagerAdapter mAdapter, int[] tabs) {
if (mViewPager.getAdapter() != null) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Bundle bundle = new Bundle();
int index = mViewPager.getAdapter().getCount();
String key = "index";
while (index >= 0) {
bundle.putInt(key, index);
ft.remove(fm.getFragment(bundle, key));
index--;
}
ft.commit();
}
mViewPager.setAdapter(mAdapter);
查看了一下FragmentManager的源码,学会了getFragmen的用法,这个方法方便通过索引取Fragment。
相关文章推荐
- 解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题
- 解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题
- ViewPager设置完FragmentPagerAdapter后动态的进行增加删除Fragment
- 关于在宿主activity中设置按钮,动态控制viewPager中的字体的大小的设置,在答题项目中遇到,在此做记录,方便日后学习,改进。
- 笔记:ViewPager+FragmentPagerAdapter数据刷新问题
- 使用ViewPager设置适配器FragmentPagerAdapter出现页面空白的问题
- Viewpager动态添加删除Fragment ,viewPageadapter.notifyDataSetChanged()方法不管用问题
- 动态设置FragmentActivity+ViewPager+FragmentPagerAdapter结构中的fragment
- FragmentPagerAdapter动态删除和调整fragment位置的问题
- 圆点与ViewPager联动(Adapter)设置
- android项目从零开始 TextView setTextColor等背景选择器设置失败问题
- android_TabLayout设置setupWithViewPager需要注意的问题
- 笔记(二)TabLayout + ViewPager + FragmentPagerAdapter 组合用法
- GridView,ListView 等adapter容器view设置setOnItemClickListener不响应的问题。
- 解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效问题(转)
- Velocity笔记--使用Velocity获取动态Web项目名的问题
- 当在listview或者viewpager使用adapter填充图片时,使用glide报错问题(tag问题)
- Velocity笔记--使用Velocity获取动态Web项目名的问题
- FragmentPagerAdapter+ViewPager 笔记
- viewpager动态更新数据重新setAdapter(FragmentPagerAdapter)不起作用