Android ListView与getView调用卡顿问题解决办法

Android ListView与getView调用卡顿问题解决办法

解决办法1,设置ListView高度为固定值或者match_parent/ifll_parent

@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Log.d("onMeasure", "onMeasure"); isOnMeasure = true; super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { Log.d("onLayout", "onLayout"); isOnMeasure = false; super.onLayout(changed, l, t, r, b); }

究其原因,无非是listview要动态计算有多少个view显示在里面,所以需要多次onMeasure,最后才onLayout,而onMeasure可能需要执行多次

这不就行了,我们在adapt里面的getview中,判断是否在onmeasure里,如果在,那么仅仅mInflater.inflate(R.layout.XXX),然后立刻返回这个convertView

如果不在onmeasure里,那么再去真正的onlayout

结合这种方法,成功解决了卡顿问题..

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-12-09 21:58:27

Android ListView与getView调用卡顿问题解决办法的相关文章

iPad mini升级iOS7后玩游戏卡顿问题解决办法

解决iPad mini升级iOS7后玩游戏卡顿问题:有不少iPad mini用户更新iOS7后,发现在游戏过程中有卡顿现象,这种情况突然发生,并且通过恢复系统的方法进行了一次刷机,结果还是没有iOS6之前那么流畅,特别是在玩微信的节奏大师时有很明显的感觉到掉帧的情况. 通过搜集热心网友们所提供的优化方式,最终发现了影响流畅度的元凶如下,大家可根据自己的需求进行操作. 1.关掉Siri 2.去掉Spotlight的搜索项 3.减少动态效果 4.控制中心的两个设置选项[在锁定屏幕上访问]和[应用程序

iPad Air玩游戏有点卡怎么办?ipad卡顿问题解决办法

1.看看是不是程序多了我们在后台退出一些常用的程序了,在平板界面我们连接按两次"主屏Home"按键,打开后台多任务管理界面 然后我们点击它打开进入之后退出不用的应用程序. 2.关闭Assistive Touch 为了玩起游戏能更流畅,还是把它关掉吧.进入"设置"--"通用"--"辅助功能"--"Assistive Touch ",选择关闭. 3.增强对比度 "设置"--"通用&

Android 使用volley过程中遇到的问题解决办法

Android 使用volley过程中遇到的问题解决办法 本文主要介绍使用 volley 过程中遇到的问题,错误提示: com.android.volley.NoConnectionError: java.io.InterruptedIOException",内容加载失败,问题出在重复调用 queue.start() 方法. 错误提示:com.android.volley.NoConnectionError: java.io.InterruptedIOException",然后就内容加

Android 中TextView的使用imageview被压缩问题解决办法

Android 中TextView的使用imageview被压缩问题解决办法 看下运行效果图: 今天解bug的时候遇到一个奇怪的问题:listview的item由一个textview和一个imageview组成,父布局是线性水平排列.我的本意是imageview显示相同的图片,textview显示文本,但是运行程序后发现,当某个textview的文本较多时,imageview会被压缩,刚开始没注意,检查代码了好久. 代码示例如下: <!--文本少的item--> <LinearLayou

Android 将view 转换为Bitmap出现空指针问题解决办法

Android 将view 转换为Bitmap出现空指针问题解决办法 在做Android 项目的时候,有时候可能有这样的需求,将一个View 或者一个布局文件转换成一个Bitmap  对象. 方法其实大都差不多.但这其中有一些小细节需要注意一下.最近在项目中用到了这个功能,现在分享一下,希望能帮助到遇到果这个 问题的人. 首先是转换 的代码: /** * 将View(布局) 转换为bitmap * @param view * @return */ public static Bitmap cre

Android Studio控制台出现中文乱码(方框)问题解决办法

Android Studio控制台出现中文乱码(方框)问题解决办法 最近遇到个恶心的事儿,就使用死丢丢的时候,发现怎么我的控制台输出中文都显示方框???别人都没事,恶心坏我了.经过各种百度,终于找到解决办法,办法也是够恶心的.我们一起来看看吧. 乱码显示结果如下: 解决办法很简单,设置字体为YaHei即可.(可能之前下载的苹果编程字体不支持吧) 修改后结果可以正常显示了 再次简单做个记录, 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Android studio 下的APK打包失败问题解决办法

Android studio 下的APK打包失败问题解决办法 今天遇到了一个奇怪的问题,本来在Android studio 1.4上运行的好好的程序,到了我更新完的Android studio 2.1上就打包失败了,但是用调试机直接运行则没问题. 最后在app下的build.gradle下加入了这样的一段代码就通过了: lintOptions { abortOnError false checkReleaseBuilds false // 防止在发布的时候出现因MissingTranslatio

Android中ViewPager带来的滑动卡顿问题解决要点解析_Android

问题说明:当SwipeRefreshLayout中放置了ViewPager控件,两者的滑动会相互冲突.具体表现为ViewPager的左右滑动不顺畅,容易被SwipeRefreshLayout拦截(即出现刷新的View). 问题原因:ViewPager本身是处理了滚动事件的冲突,它在横向滑动时会调用requestDisallowInterceptTouchEvent()方法使父控件不拦截当前的Touch事件序列.但是SwipeRefreshLayout的requestDisallowInterce

android 特卖列表倒计时卡顿问题

在Android的开发中,我们经常遇见倒计时的操作,通常使用Timer和Handler共同操作来完成.当然也可以使用Android系统控件CountDownTimer,这里我们封装成一个控件,也方便大家的使用. 首先上一张效果图吧: 说一下造成卡顿的原因,由于滑动的时候,adapter的getView频繁的创建和销毁,就会出现卡顿和数据错位问题,那么我们每一个item的倒计时就需要单独维护,这里我用的Handler与timer及TimerTask结合的方法,我们知道TimerTask运行在自己子