listview 在不改变数据源的情况下 刷新adapter 的解决办法
来源:互联网 发布:缺血半暗带的算法 编辑:程序博客网 时间:2024/05/29 08:10
声明:
本人是在 集成环信的群聊功能后,监听收到消息在不改变Adapter的情况下 刷新群组列表,使群组列表中单个群组的item上面显示 小红点
效果图如下
代码如下:
msgListener = new EMMessageListener() { @Override public void onMessageReceived(List<EMMessage> messages) { //收到消息 LogUtils.e(mContext,"onMessageReceived","触发了"); listView.smoothScrollBy(1,0); groupAdapter.notifyDataSetChanged(); } @Override public void onCmdMessageReceived(List<EMMessage> messages) { //收到透传消息 } @Override public void onMessageReadAckReceived(List<EMMessage> messages) { //收到已读回执 } @Override public void onMessageDeliveryAckReceived(List<EMMessage> message) { //收到已送达回执 } @Override public void onMessageChanged(EMMessage message, Object change) { //消息状态变动 }};EMClient.getInstance().chatManager().addMessageListener(msgListener);
遇到的情况是: 如果不滑动listview 就不会刷新适配器 (就算是设置数据源也没用,因为我这里的数据源不需要改变)
解决: 在监听中 让listview 移动 然后刷新适配器(为了让移动的效果不明显 所以移动的距离设置为了1 ,时长设置为了0)
已解决所遇到的问题 以上解决方法 仅供大家参考 (这种做法有点简单粗暴,但是目前没有找到 也没有想到更好的解决办法)
1 0
- listview 在不改变数据源的情况下 刷新adapter 的解决办法
- 在不刷新页面的情况下使用 DOM 改变网页界面
- ReactNative ListView改变数据源,列表不刷新
- 关于listview的自定义adapter不执行getview()方法的几种情况和解决办法
- 在不改变透明背景的情况下,修改图片尺寸
- 在不刷新的情况下动态添加表格行
- Adapter.notifyDataSetChanged()数据改变却不刷新的原因
- 掌握 Ajax,第 6 部分: 建立基于 DOM 的 Web 应用程序 在不刷新页面的情况下使用 DOM 改变网页界面
- open flash chart 2在IE下刷新无法改变的解决办法
- 在不改变网络拓朴情况下,临时解决IP不足的方法
- 重构--即在不改变现有功能的情况下修改现有代码
- c++面试题:在不改变任何代码的情况下 输出hello world!
- 在不改变php.ini的情况下修改文件上传大小
- 使用 jQuery 在不刷新的情况下提交 Form 附带官方示范
- 在不刷新页面的情况下调用远程asp脚本
- js在不刷新的情况下动态添加表格行
- 实现在父页面不刷新情况下显示子页面传递的信息
- 使用 jQuery 在不刷新的情况下提交 Form 附带官方示范
- 用ADT的FileExplorer查看android手机中的数据库
- LeetCode: Majority Element
- hdu 3555 Bomb 【数位DP】
- 今日get的新技能
- android之壁纸机制
- listview 在不改变数据源的情况下 刷新adapter 的解决办法
- 机器学习实战笔记2(k-近邻算法)
- 安卓模拟器不能联网的解决方案
- 三种快排及四种优化方式
- U3D Resources & AssetBundle内存管理总结
- second day for javascript
- 20 ViewPager Demo3指示器
- 安卓小结.TextUtils.isEmpty
- 由于未分配内存的指针导致段错误