【问题标题】:How to prevent touches prematurely stopping smoothScroll in RecyclerView?如何防止触摸过早停止 RecyclerView 中的 smoothScroll?
【发布时间】:2020-06-04 15:58:44
【问题描述】:

我正在使用Adapter 来填充RecyclerView 与许多CardView 布局(水平)。每个CardView 在布局底部都有一个Button,按下时会提示调用:

recyclerView.smoothScrollBy(x, y);

这会按预期水平滚动到下一张卡片,除非用户在滚动时触摸屏幕。我尝试禁用RecyclerViewCardViewTouchEvent 无济于事。

我显然不能依赖用户在这个滚动动画期间不触摸屏幕,所以我想知道是否有人对为什么滚动过早停止以及如何停止滚动有任何想法。

谢谢。

【问题讨论】:

标签: java android android-recyclerview android-adapter


【解决方案1】:

在滚动之前禁用用户交互并在稍后重新启用它们。我会使用窗口标志:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

recyclerView.smoothScrollBy(x, y);

new Handler().postDelayed(new Runnable() {
   public void run(){
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
   }
}, 500);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2020-10-03
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    相关资源
    最近更新 更多