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