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()
禁止所有儿童的触摸事件。现在我只需要为第一个孩子允许一个触摸事件。你知道这是可能的吗?如果是,怎么做?