Каков наилучший способ использовать функцию startSwipe ItemTouchHelper - PullRequest
0 голосов
/ 03 февраля 2020

Я создал пользовательские LayoutManager и TouchHelper.Callback, чтобы иметь колоду, похожую на трут. Я хочу, чтобы мой менеджер макетов разрешил сенсорному событию только первый элемент. Сначала я переопределяю isItemViewSwipeEnabled() из ItemTouchHelper.Callback, чтобы отключить сенсорное событие для каждого ребенка. В качестве последнего шага мне нужно разрешить первому элементу иметь только сенсорное событие. Однако я не смог этого сделать. Кто-нибудь знает, как это преодолеть?

  • StackLayoutManager для создания дочерних представлений.

  • StackTouchHelperCallback для запрета событий касания по умолчанию.

  • StackView пользовательского RecyclerView.

Это разработанная мной иерархия пользовательских представлений. Если у кого-то есть какие-то взгляды, могут ли они мне помочь? Заранее спасибо.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете override getMovementFlags method и return 0, если вы не хотите разрешать какое-либо движение, в противном случае return соответствующее направление flags.

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