Android 使用ItemTouchHelper的startSwipe功能的最佳方式是什么

Android 使用ItemTouchHelper的startSwipe功能的最佳方式是什么,android,android-layout,kotlin,android-recyclerview,itemtouchhelper,Android,Android Layout,Kotlin,Android Recyclerview,Itemtouchhelper,我创建了一个自定义的LayoutManager和TouchHelper.Callback来拥有一个类似tinder的卡片堆栈。我希望我的布局管理器只允许第一个项目具有触摸事件。首先,我覆盖ItemTouchHelper.Callback的IsItemViewSwipEnabled(),以禁用每个子项的触摸事件。作为最后一步,我需要允许第一个项目只有一个触摸事件。但是,我没有这样做。有人知道如何克服它吗 StackLayoutManager创建子视图 StackTouchHelperCallba

我创建了一个自定义的
LayoutManager
TouchHelper.Callback
来拥有一个类似tinder的卡片堆栈。我希望我的布局管理器只允许第一个项目具有触摸事件。首先,我覆盖
ItemTouchHelper.Callback的
IsItemViewSwipEnabled()
,以禁用每个子项的触摸事件。作为最后一步,我需要允许第一个项目只有一个触摸事件。但是,我没有这样做。有人知道如何克服它吗

  • StackLayoutManager创建子视图

  • StackTouchHelperCallback禁止默认触摸事件

  • StackView自定义回收视图


这是我开发的自定义视图层次结构。如果有人提出了某种观点,他们能帮助我吗?提前感谢。

如果您不想允许任何移动,您可以
覆盖
getMovementFlags
方法
返回
0,否则
返回
适当的方向
标志

override fun getMovementFlags(recyclerView: RecyclerView, viewHolder:RecyclerView.ViewHolder): Int {
        return if(viewHolder.adapterPosition == 0) /* return appropriate direction flags */ else 0
}

你好,谢谢!我对方向没有任何问题。这是触摸事件的问题。我通过
isItemViewSwipeEnabled()
禁止所有儿童的触摸事件。现在我只需要为第一个孩子允许一个触摸事件。你知道这是可能的吗?如果是,怎么做?