首页 > 解决方案 > 当新消息到达Android时如何使recyclerView上升?

问题描述

我正在创建一个聊天应用程序,一切都很好,但是当消息填充屏幕和新消息到达时,我必须手动向上滚动 recyclerView。我想要的是我希望新消息将 recycler View 向上推送。

在此处输入图像描述

对于我正在使用的反向布局linearLayoutManager.setStackFromEnd(true);

标签: android

解决方案


您可以从您的添加新项目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);
        

推荐阅读