/**
* 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时,出现两次滑动后的界面会消失。 产生的...
- 最近刚来了一家新的公司,因为只有一个人在做开发,很多东西都需要自己学习,所以,现在开始,也做学习笔记吧。 在公司添...
- 成人世界的规则太多,在感情这场游戏里谁认真注定谁输得最透彻,真心唯能留出三分给爱人,七分是独属自己的,爱自己胜过爱...