始终专注于聊天屏幕中的最后一封邮件

时间:2018-10-17 10:06:50

标签: android android-recyclerview chat

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

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

为此使用以下代码...对我有用...

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);
                }
            }
        }
    });