如果用户开始滚动RecyclerView
,我想隐藏键盘。 如果我理解正确,dy
是滚动距离,如果它超过某个值,我可以隐藏键盘。
但是我发现如果您在屏幕上按住手指并缓慢滚动,它不会改变dy
值(它仍然1
(,这意味着我的方法不起作用。
有谁知道其他替代如何处理这个特定的用例?
法典:
list.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
if (dy.absoluteValue > KEYBOARD_HIDE_DIST) editText.clearFocus()
}
})
在回收器上使用此函数computeVerticalScrollOffset((查看它将给出滚动位置的偏移量
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.d("Scrolled","Distance Scrolled : "+ recyclerView.computeVerticalScrollOffset());
}
});
还没有从 kotlin 开始,因此我添加了 java 代码。希望你得到这个东西。让我知道它是否适合您