回收器视图测量滚动距离以禁用键盘



如果用户开始滚动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 代码。希望你得到这个东西。让我知道它是否适合您

相关内容

  • 没有找到相关文章

最新更新