【问题标题】:Recyclerview measure scroll distance to disable keyboardRecyclerview 测量滚动距离以禁用键盘
【发布时间】:2020-10-12 05:26:27
【问题描述】:

如果用户开始滚动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()
     }
})

【问题讨论】:

  • 如果您使用的是线性布局管理器,您可以添加一个监听器并在任何更改时隐藏键盘

标签: android android-recyclerview android-edittext android-scroll


【解决方案1】:

在recyclerView上使用这个函数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 代码。希望你得到了东西。让我知道它是否适合你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2020-11-10
    • 2015-08-12
    相关资源
    最近更新 更多