android - 当新消息到达Android时如何使recyclerView上升?
问题描述
我正在创建一个聊天应用程序,一切都很好,但是当消息填充屏幕和新消息到达时,我必须手动向上滚动 recyclerView。我想要的是我希望新消息将 recycler View 向上推送。
对于我正在使用的反向布局linearLayoutManager.setStackFromEnd(true);
解决方案
您可以从您的添加新项目model-class
并使用此notifyItemInserted
功能刷新新项目,而无需更改以前的项目。如果您正在制作聊天框或评论部分,这可能会有所帮助。
modelclass.add(index, values);
adapter.notifyItemInserted(index);
recyclerview.smoothScrollToPosition(index);
通过此功能,您可以通过其 id 检查该项目是否已在列表中。
boolean contains(List<modelclass> list, String id) {
for (modelclass item : list) {
if (item.getId().equals(id)) {
return true;
}
}
return false;
Handler在一段时间后调用列表函数:
final Handler handler = new Handler();
final int delay = 1000;
handler.postDelayed(new Runnable() {
public void run() {
updatelist();
handler.postDelayed(this, delay);
}
}, delay);
推荐阅读
- flutter - 通过一个登录表单连接 Flutter 和网站
- python - 容器:卷 dockerfile 不起作用
- c - 如何将函数指针的结果作为另一个函数的参数传递?
- python - 如何使用相应的键值重命名字典中的值?
- c# - dotnet ef 脚手架错误“名称或服务未知”
- python - 用 mongomock 和 unittest 模拟 Mongodb
- r - 如何使用可拖动图中的高度值更新滑块输入的值?
- gatsby - 如何阻止 Gatsby 将 Markdown 图像包装在
标签和隐藏图片标题?
- python-3.x - 用于多类分类的 Scikit-learn make_scorer 自定义度量问题
- c - 从链表中删除列表元素。删除后重置列表元素指针。Steven Skiena 书中的代码