/**
* FragmentPagerAdapter和FragmentStatePagerAdapter最大的区别就是instantiateItem和 destroyItem实现不一样,如果都重写了2者的效果就基本一样了
* 重写instantiateItem ,destroyItem 滑动切换 Fragment数据保存状态
*/
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
//public class MyFragmentPagerAdapter extends FragmentStatePagerAdapter{
private List<Pair<String, Fragment>> mFragmentPair;
private FragmentManager mFragmentManager;
public MyFragmentPagerAdapter(FragmentManager fm, List<Pair<String, Fragment>> mFragmentPair) {
super(fm);
this.mFragmentManager = fm;
this.mFragmentPair = mFragmentPair;
}
@Override
public Fragment getItem(int position) {
return mFragmentPair.get(position).second;
}
@Override
public int getCount() {
return mFragmentPair.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentPair.get(position).first;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
mFragmentManager.beginTransaction().show(fragment).commitAllowingStateLoss();
//###return super.instantiateItem(container, position);
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//###super.destroyItem(container, position, object);
Fragment fragment = mFragmentPair.get(position).second;
mFragmentManager.beginTransaction().hide(fragment).commitAllowingStateLoss();
}
}
Android 总结 ViewPager 中 Fragment 滑动切换、数据保存
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 使用ViewPager+Fragment进行界面切换,当界面数量大于等于3时,出现两次滑动后的界面会消失。 产生的...
- 最近刚来了一家新的公司,因为只有一个人在做开发,很多东西都需要自己学习,所以,现在开始,也做学习笔记吧。 在公司添...
- 成人世界的规则太多,在感情这场游戏里谁认真注定谁输得最透彻,真心唯能留出三分给爱人,七分是独属自己的,爱自己胜过爱...