Android 始终关注聊天屏幕中的最后一条消息

Android 始终关注聊天屏幕中的最后一条消息,android,android-recyclerview,chat,Android,Android Recyclerview,Chat,我正在开发一个聊天应用程序。当用户单击编辑文本字段并弹出键盘时,我在关注聊天的最后一条消息时遇到了一个问题。现在发生的是,每当键盘弹出时,我必须向下滚动聊天屏幕才能看到最后一条消息。理想情况下,无论键盘是否弹出,我都应该在不滚动的情况下看到焦点中的最后一条消息。 根据屏幕截图,屏幕截图1是实际的聊天屏幕,其中“Hi”是最后一条消息。在第二个屏幕截图中,当我按edit text启动键盘时,“s”显示为最后一条消息,我必须向下滚动才能看到最后一条消息。实际上,“Hi”应该显示为最后一条消息。有人对此

我正在开发一个聊天应用程序。当用户单击编辑文本字段并弹出键盘时,我在关注聊天的最后一条消息时遇到了一个问题。现在发生的是,每当键盘弹出时,我必须向下滚动聊天屏幕才能看到最后一条消息。理想情况下,无论键盘是否弹出,我都应该在不滚动的情况下看到焦点中的最后一条消息。 根据屏幕截图,屏幕截图1是实际的聊天屏幕,其中“Hi”是最后一条消息。在第二个屏幕截图中,当我按edit text启动键盘时,“s”显示为最后一条消息,我必须向下滚动才能看到最后一条消息。实际上,“Hi”应该显示为最后一条消息。有人对此有办法吗?我使用windowssoftinput模式作为“调整大小”,但这不起作用


使用下面的代码…它对我有用

mRecyclerView.addOnLayoutChangeListener(new View.OnLayoutChangeListener()
    {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom)
        {
            if (mRecyclerView != null)
            {
                if (bottom < oldBottom)
                { 
                    mRecyclerView.smoothScrollToPosition(mRecyclerAdapter.getItemCount() - 1);
                }
            }
        }
    });

如果将线性布局管理器与recyclerview一起使用,则可以设置recyclerview.setStackFromEndtrue。它将视图设置为显示最后一个元素,布局方向将保持不变

发布布局文件