Android实现评论功能
一,原生控件ExpandableListview
利与弊
利
该控件样式父子列表,一个控件,一个Adapter,一套父布局,一套子布局就可以实现,操作简单;
弊
该控件需要处理的样式的问题
- 展示箭头需要隐藏;
- 列表子view需要默认全部展开;
- 上拉加载需要先关闭所有的item,然后再重新展开所有的item,否则第二页的子布局显示不出来及报数组越界;
- 定位问题,回复评论后需要刷新ExpandableListview,这时候也需要关闭再展开所有的item,否则子布局显示不出来及易报数组越界;
- ExpandableListview的点击事件需要分别拦截。
- 子Item的宽度不可控,子View设置不是全屏宽度的背景时需要多加层级进行控制。
二,控件Listview双层嵌套
利与弊
利
- 父Item和子Item的数据适配器相互独立;
- 不需要处理展开还是关闭的问题,不会因为显示子Item报数组越界问题;
- 定位问题,回复之后直接刷新notify就可以了,不会出现数组越界问题;
4, 子布局的样式及背景可以轻松的控制。
弊
- 需要两个数据适配器构造对应的ListView的数据;
- 父Item和子Item的回复功能需要分别设计回调去刷新数据;
- 层级比较深Activity的布局放置父布局的Listview,父布局中放置子布局的ListView;
- 第二页及其以后回复评论后定位问题,需要单独设置局部刷新
以上是经历过开发二级评论之后的经验,刚开始使用了ExpandableListview,效果确实不错,实现起来也很简单,就是展开和收起的问题,需要做很多其他的工作去解决,从而会引发更多的问题。
两个控件都实现了评论功能,建议使用Listview嵌套。
网友评论