聊天类型的通讯界面listView总结

最近在做一个项目,其中有一部分需要实现一个聊天的界面,可以收发文字,语音,图片,这个listView真是搞了好久才搞明白。


现在来总结一下遇到的问题:


1、convertView的作用,convertView是用来干嘛的呢,这个破玩意儿是用来解决listview中出现的相同样子的itemview的,那么问题来了,什么叫做相同样子的,我调试发现,相同样子是指完全一样的,也就是之前出现过的item,手指又滑动listview,那么之前的item的convertview就是  !null.而与viewholder是否相同无关。


2、算上收发,一共六种类型的item,我是override了getItemVIewType,和getViewTypeCount然后listView能够正确显示,getView处理viewholder也正常,前面两个只覆写一个是不行的,之前我只覆写了getItemVIewType,listView显示不正确。


3、关于ViewHolder,这6种类型的消息,我写了六种viewHolder,当然也可以写一个ViewHolder,所以遇到listView不能显示不同类型,这个viewholder无关。


4、也有的人能够不去覆写getItemViewType,也可以刷新出不一样的item,后来把那个例子弄没了,网上没找到,有看到的同学,欢迎评论指点,给提一些建议,谢谢。


5、关于setAdapter和notifyDataChanged,前一个是重新设定adapter,下面开始的一个convertView一定是null,而且set后,listView回到最上方,而后者不同,只是在最下面增加了一个item,convertView是否为null要看item。另外为了是的listView能够正确显示,一般在notifydatachanged后,写一个mListView.setSelection(mListView.getCount - 1);

所以我这里每次增加新的消息,就notify就可以了。不需要重新setAdapter.


代码就不贴了,都很基础,只是才弄明白,欢迎指正错误,大家给出意见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值