Fragment 视图重绘问题
16lz
2021-01-26
android 中在使用到Tab和ViewPager+Fragment的时候,切换tab会导致view重绘,这样用户体验极差,每次都要重新加载页面,有个办法就是判断根View,根据rootView的状态来判断是否重新加载View
@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (cacheView == null) { cacheView = inflater.inflate(R.layout.fragment_page, container, false); assignViews(cacheView); } return cacheView;}
在销毁Fragment的时候,在onDestroyView里面移除
@Overridepublic void onDestroyView() { super.onDestroyView(); //把Fragment的RootView从ViewPager中remove //缓存的cacheView需要判断是否已经被加过parent, 如果有parent,需要从parent删除 if (null != cacheView) { ((ViewGroup) cacheView.getParent()).removeView(cacheView); }}这是防止页面重绘,关于Fragment的页面数据切换缓存,Viewpager有一个方法可以用来缓存数据
viewPager.setOffscreenPageLimit(5);
参数是缓存页面的数量
更多相关文章
- android WebView(三)WebViewClient
- 《Android(安卓)Activity》活动的介绍和创建
- Android(安卓)之startActivityForReult 与 onActivityResult简介
- Android(安卓)仿联系人菜单,带字母索引,顶部挤压动画,recyclerview
- Android(安卓)4.2 API文档页面打开过慢的问题
- tabhost (activitygroup)中子页面弹出对话框
- IE 和android浏览器上页面图片加载判断
- Google Maps API v2密钥申请
- Webview里JS跳转到Activity页面