首先附上大神的博客http://blog.csdn.net/zhaizu/article/details/48103351,这个事大神写的仿微信朋友圈的代码,正好想研究一下微信朋友圈的动态评论功能呢,没想到网上一个大神做得非常棒,动态评论的功能也加上了。
下面就文章进行自己的一点理解;
首先是在listview的getview方法中,如果是我,会把item中的按钮操作逻辑全部写在getview中进行,这样会造成代码非常难读,但是作者直接把每一个item抽取成一个itemview,所有的操作逻辑全部写在itemview中,从而大大提高代码的可读性,发现所有复杂的交互都写在这个专门进行显示的item中进行,在itemview中写好接口,在activity中进行实现做回调,在getview中只需要调用itemview的setdata()方法就可以进行数据的更新,
并且作者为了动态评论只更新当前的item数据发生变化,不调用adapter的notifydatasetcanged()方法更新整个listview降低性能,作者将每一个itemview存放到一个集合中,当我们在评论输入框中输完内容更新itemview的时从集合中根据itemview的回调接口传过来的position来取出对应的itemview,并调用itemview的更新方法将评论刷新显示在屏幕上,
评论内容的动态显示其实就是在itemview中的不居中添加一个linearlayout,然后根据item中的comment数据是否存在来往linearlayout中在每次调用itemview的addcomment中进行添加显示即可。