博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
viewpager+fragment滑动切换卡顿问题
阅读量:6257 次
发布时间:2019-06-22

本文共 1207 字,大约阅读时间需要 4 分钟。

最近在做项目的时候遇到个问题,viewpager中的fragment添加使用listview添加数据后出现滑动卡顿,造成用户体验感极差。找了很久的资料,也试了很多大方法,在这里给大家分享下:

1、添加预加载数量:

mPager .setOffscreenPageLimit(2);//参数为预加载数量,系统最小值为1。慎用!预加载数量过多低端机子受不了

 

2、防止Fragment被销毁:

在Fragment的onDestroy中:保存视图、rootView是本fragment的视图

 
@Override  public void onDestroyView() {      super.onDestroyView();      if (rootView != null) {          ((ViewGroup) rootView.getParent()).removeView(rootView);      }  }

在onCreateView中:判断原来的rootView是否为null、若不为null则直接进行显示

@Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,          Bundle savedInstanceState) {      if (rootView == null) {          rootView = inflater.inflate(R.layout.dt_fragment_finance_raise, null);          -----初始化操作-----      }      return rootView;  }

 

 

或是在viewpager的适配器中重写destroyItem方法

@Override        public void destroyItem(ViewGroup container, int position, Object object) {                //super.destroyItem(container, position, object);        }

 

 

3、使用了上面的方法还是卡顿,后来才发现是个失误:

listview的高度是wrap_content,这用会导致listview的adapter中的getview会一直执行不卡才怪;
  只要把:
android:layout_height="wrap_content"
改为:
 android:layout_height="match_parent"

 

原文转自:https://blog.csdn.net/z437955114/article/details/48630621 略有改动

你可能感兴趣的文章
zookeeper的python客户端安装
查看>>
LINUX 下Open cv练习使用小记(2)
查看>>
JavaScript基础避免使用eval()(006)
查看>>
面向对象和面向过程的区别
查看>>
内置函数与匿名函数
查看>>
SSH实现登陆拦截器
查看>>
使用HttpWebRequest出错时获取详细的错误信息
查看>>
sql还原(.mdf文件还原)
查看>>
Mellanox infinoband RDMA SDP
查看>>
Nearest Common Ancestors(LCA)
查看>>
JS/atan2 pow
查看>>
Pythoh网络编程3:创建TCP服务器和客户端
查看>>
angularjs 出现 “Possibly unhandled rejection: cancel ”错误
查看>>
bzoj 2653 middle (主席树+二分)
查看>>
指导别人,弥补自己
查看>>
BZOJ3932: [CQOI2015]任务查询系统
查看>>
和make相关的一些命令
查看>>
Fiddler抓取https设置及其原理
查看>>
常用的一些模板
查看>>
WPF使用Expression Design设计图形
查看>>