在NestedScrollView中使用RecyclerView的ItemTouchHelper:拖动滚动不起作用

时间:2016-09-27 21:30:22

标签: android android-recyclerview android-nestedscrollview itemtouchhelper

我已经实现了ItemTouchHelper,就像在这篇文章中描述的那样: https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf#.k7xm7amxi

如果RecyclerView是CoordinatorLayout的孩子,那么一切正常。

但是如果RecyclerView是CoordinatorLayout中的NestedScrollView的子代,则拖动滚动不再起作用。 拖动项目并将其移动到屏幕的顶部或底部,RecyclerView不会像它不是NestedScrollView的子项那样滚动。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  

android:descendantFocusability =“ blocksDescendants”

添加 NestedScrollView 并添加

  

android:focusableInTouchMode =“ true”

在子布局中,其外观如下

   <androidx.core.widget.NestedScrollView 
        android:descendantFocusability="blocksDescendants"> 

    <androidx.constraintlayout.widget.ConstraintLayout
        android:focusableInTouchMode="true">
        </androidx.constraintlayout.widget.ConstraintLayout> 

</androidx.core.widget.NestedScrollView>

答案 1 :(得分:0)

您必须为nestedScrolling禁用recyclerView

recyclerViewAdapter.setIsNestedScrollingEnabled(false);