ViewPager中切换界面Fragment被销毁
程序员文章站
2022-05-28 11:54:05
...
ViewPager+Fragment进行切换,adapter使用FragmentPagerAdapter,切换的时候,会自动创建相邻的fragment,比如最开始处于第0页时,adapter不仅为第0页创建Fragment实例,还为相邻的第1页创建了Fragment实例,第1次从第0页滑到第1页,adapter同样会为相邻的第2页创建Fragment实例,但是会把上上页的实例保留,销毁了它的视图,所以界面会显示异常。
解决的方法有三种,第一是扩大ViewPager的缓存界面数,默认是一个界面,可以通过
mPager .setOffscreenPageLimit(maxNum-1);
设置,maxNum为最大Fragment数目
第二种方法是在onDestroyView方法内保存相关信息,在onCreateView方法内恢复信息设置
第三种是复用Fragment的RootView
private View mFragmentView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
if(mFragmentView==null)
{
mFragmentView = inflater.inflate(R.layout.fragment_health_education, container, false);
ButterKnife.bind(this, mFragmentView);
}
return mFragmentView;
}
@Override
public void onDestroyView()
{
super.onDestroyView();
if (null != mFragmentView) {
((ViewGroup) mFragmentView.getParent()).removeView(mFragmentView);
}
}
参考文献
关于ViewPager+Fragment中Fragment不销毁/生命周期
Android App中ViewPager与Fragment结合的一些问题解决
推荐阅读
-
ViewPager中切换界面Fragment被销毁的问题
-
android app安卓应用实例:起始页+fragment底部导航栏+ViewPager滑动切换+个人信息界面(二)
-
ViewPager中切换界面Fragment被销毁
-
Android中Fragment点击切换与添加ViewPager滑动切换
-
起始页+fragment底部导航栏+ViewPager滑动切换+个人信息界面示例安卓app(一)
-
ViewPager中切换界面Fragment被销毁的问题
-
android app安卓应用实例:起始页+fragment底部导航栏+ViewPager滑动切换+个人信息界面(二)
-
解决Android百度地图MapView在ViewPager中Fragment切换黑屏问题