1、写在前面
实现一个聊天界面,就是类似QQ那种,这里是讲一下倒序排列,不实现QQ的各种高级功能
2、ListView 反转数据
只要把数据倒序加入到adapter的数据集中,就可以实现倒序效果
/**
* 回底部
*/
public void goBottom() {
handler.post(new Runnable() {
@Override
public void run() {
if (mListView != null)
mListView.setSelection(mListView.getBottom());
}
});
}
这个方案有一下几个问题
显示最后一条需要每次都移动到相应位置
加载更多需要使用下拉刷新的样式实现(如果样式差不多,这里不是问题)
3、RecyclerView
方案一、反转数据
同listview的实现方式,将数据倒序加入,除了具有listview方式的问题
方案二、反转列表
RecyclerView的布局是有LayoutManager控制的,LinearLayoutManager就支持了倒序的功能
1. setStackFromEnd(true)
2. setReverseLayout(true)
3. list.addFirst(item)
在数据上,可以考虑使用上面3的方法,直接添加数据到列表的头部,或者重写adapter的getItem方法,改为g