我有RecyclerView
,某种聊天类型。项目是TextViews
布局颠倒。输入字段在RecyclerView
以下。当我滚动到RecyclerView
的底部并点击底部项目时,它会自动滚动到该项目的顶部(当项目中的文本大于屏幕高度时),它会自动滚动到该项目的顶部(仅当它聚焦时(而不是每次点击))和RecyclerView
自动滚动到该项目的顶部。为什么RecyclerView在查看焦点时滚动到视图顶部
此外,当键盘可见,我点击RecyclerView
项目 - 键盘隐藏和回收视图滚动到该项目的顶部,如何禁用这种行为?
我希望它保持在相同的位置,当它是当键盘被打开或当我点击某个项目时。
键盘是用这种方法
* * * *
inputView.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus){
hideKeyboard();
}
});
* * * *
public void hideKeyboard() {
InputMethodManager keyboard = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.hideSoftInputFromWindow(inputView.getWindowToken(), 0);
}
而且RecyclerView
以这样的方式配置躲在:
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.messageList);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(chatAdapter = new chatAdapter(getContext()));
如果我做一个按钮,就会调用hideKeyBoard()
通过点击该按钮 - 它的确定,它不滚动,但当我点击RecyclerView项目 - 它得到专注并滚动到该项目的顶部