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();    //FragmentRootViewViewPagerremove    //缓存的cacheView需要判断是否已经被加过parent, 如果有parent,需要从parent删除    if (null != cacheView) {        ((ViewGroup) cacheView.getParent()).removeView(cacheView);    }}
这是防止页面重绘,关于Fragment的页面数据切换缓存,Viewpager有一个方法可以用来缓存数据

viewPager.setOffscreenPageLimit(5);
参数是缓存页面的数量





更多相关文章

  1. android WebView(三)WebViewClient
  2. 《Android(安卓)Activity》活动的介绍和创建
  3. Android(安卓)之startActivityForReult 与 onActivityResult简介
  4. Android(安卓)仿联系人菜单,带字母索引,顶部挤压动画,recyclerview
  5. Android(安卓)4.2 API文档页面打开过慢的问题
  6. tabhost (activitygroup)中子页面弹出对话框
  7. IE 和android浏览器上页面图片加载判断
  8. Google Maps API v2密钥申请
  9. Webview里JS跳转到Activity页面

随机推荐

  1. Android(安卓)如何让某个view悬浮在其他
  2. Android实现机制(三)——View事件分发机制
  3. 《Android(安卓)JNI》05 在JNI中调用Java
  4. Android(安卓)Info类的总结
  5. Android(安卓)aapt自动打包工具详细介绍
  6. Android源码下载小结
  7. Android悬浮通知无效的问题
  8. Android(安卓)判断手机是否安装某个应用
  9. 无法在Android(安卓)Studio中设置断点
  10. Android(安卓)通过ViewPager实现广告轮播