android 软键盘弹出影响recyclerview 自动滚动滚动
时间: 2023-07-22 16:22:00 浏览: 135
当 Android 软键盘弹出时,会导致 RecyclerView 自动滚动。这是因为 RecyclerView 默认会将焦点移动到当前用户正在编辑的 EditText 上,以保证用户可以看到正在编辑的内容。
如果你不希望 RecyclerView 自动滚动,可以通过以下两种方式解决:
1. 在 AndroidManifest.xml 文件中,将当前 Activity 的 windowSoftInputMode 属性设置为 "adjustPan"。这样做会将当前 Activity 的布局向上移动,以免被软键盘遮挡,但是 RecyclerView 不会自动滚动。
2. 在 RecyclerView 的 Adapter 中,重写 onAttachedToRecyclerView 方法,并在其中添加以下代码:
```
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
return false;
}
});
```
这样做会在用户触摸 RecyclerView 时,强制隐藏软键盘,从而避免 RecyclerView 的自动滚动。
阅读全文