【问题标题】:What is the best way to use startSwipe function of ItemTouchHelper使用 ItemTouchHelper 的 startSwipe 功能的最佳方法是什么
【发布时间】:2020-02-03 15:11:42
【问题描述】:

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

  • StackLayoutManager 创建子视图。

  • StackTouchHelperCallback 禁止默认触摸事件。

  • StackView 自定义 RecyclerView。

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

【问题讨论】:

    标签: android android-layout kotlin android-recyclerview itemtouchhelper


    【解决方案1】:

    你可以overridegetMovementFlagsmethodreturn0以防你不想允许任何移动,否则return适当的方向flags

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

    【讨论】:

    • 嗨@mightyWOZ 谢谢!我对方向没有任何问题。这是触摸事件问题。我不允许isItemViewSwipeEnabled() 对所有孩子进行触摸事件。现在我只需要允许第一个孩子的触摸事件。你知道这是可能的吗?如果可以的话怎么做?
    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    相关资源
    最近更新 更多