求大神帮忙解决listview数据过多软键盘弹出卡顿问题

泡在网上的蜘蛛 2015-12-19 11:22:47
需求需要做一个列表聊天的形式,里面有20种左右的viewtype,但是我发现列表数据过多软键盘弹出就会卡顿。
今天我自己做了一个demo:
卡顿的效果如下:
http://www.miaopai.com/show/gCiC33WbW0QkPnTZiNX~Qg__.htm
求大神给点思路

我的demo源码:
http://pan.baidu.com/s/1nugG5QT

xml属性设置的是:
android:windowSoftInputMode="adjustResize|stateHidden"

我思考过的思路有:
1、想监听软键盘弹出与隐藏,但是遇到不能监听不是很理想。
2、在输入框的下面加一个view与软键盘的高度一样,弹出时显示这个view把这个输入框弹上去,但还是监听软键盘的弹出与隐藏不理想。

所有的方法都在demo中有代码。


希望大神能 给我一点思路,或者帮我看看这个demo改如何解决这个卡顿的问题。谢谢了
...全文
313 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 zaizai2154365 的回复:
http://pan.baidu.com/s/1i4h4E9Z改后的代码
谢谢提供思路,你这样说貌似还真的是没有起到缓存作用。 为什么要使用这个自定义的布局,因为我要实现一个效果,那个效果是搜狗语音助手的一个效果,能否加一下我的QQ1583039459指导一下我,给点思路就好了。 谢谢
ruinworld 2015-12-20
  • 打赏
  • 举报
回复
http://pan.baidu.com/s/1i4h4E9Z改后的代码
ruinworld 2015-12-20
  • 打赏
  • 举报
回复
你的代码我看了运行了下,你这是因为布局加载太多和主线程执行太长时间导致的卡顿现象,也就是说android在规定的一个时间内你程序没有完成你要绘制的操作,从而产生的卡顿,解决办法是第一你一次性加载的数据不要太多,你那个初始化数据的方法也太低级了,起码写个while和for循环吧,我试了下数据初始化为1000的时候会卡顿,10000的时候程序直接OOM,List集合肯定也容不了那么多数据,还有就是你用的自定义控件有问题,你用的是自定义的ListVIew?而你在adapter中优化的是用的官方的ViewHolder,我觉得你的布局根本就没有优化到,也就是说你初始化了100个对象,程序会分配了100个对象来创建和加载布局,所以界面加载多了会有问题,我改成了官方自带的ListView初始化1000个数据完美不卡顿。代码我只看了这些其他的没看,有问题再问我。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧