Проблема с взаимодействием при пролистывании Android: кнопки внутри пролистываемого представления не реагируют должным о ⇐ Android
Проблема с взаимодействием при пролистывании Android: кнопки внутри пролистываемого представления не реагируют должным о
В настоящее время я реализую в Android параметры обновления/удаления с помощью пролистывания и столкнулся с проблемой в своем коде. Я использую SwipeHelper, чтобы включить пролистывание по строкам списка, и хотя функция пролистывания работает, я столкнулся с проблемой с кнопками внутри прокручиваемого представления. Они не вызывают никаких событий щелчка, а вместо этого любое действие по щелчку приводит к тому, что строка списка возвращается в исходное положение.
Я пробовал использовать recyclerView.adapter?.notifyDataSetChanged() после пролистывания, и хотя это приводит к тому, что события кнопки запускают действия по щелчку, это приводит к сбою в поведении пролистывания. Иногда действие смахивания закрывается, а иногда оно не вызывает никаких действий по закрытию смахивания, независимо от того, насколько сильно я пытаюсь провести его обратно.
Мне нужна помощь, чтобы понять, что может быть причиной этой проблемы и как ее решить.
класс RecyclerSwipeHelper( частный вал recyclerView: RecyclerView, ) : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) { в этом { } переопределить удовольствие onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, цель: RecyclerView.ViewHolder ): Логическое значение { вернуть ложь } переопределить удовольствие onSwiped(viewHolder: RecyclerView.ViewHolder, направление: Int) { // recyclerView.adapter?.notifyDataSetChanged() /* Это тоже не работает */ /* привязка val = LayoutHistoryDetailItemBinding.bind(viewHolder.itemView) привязка.применить { itemHistoryAdd.setOnDebouncedClickListener { itemUpdateAction(item.productSku, true) } } */ } переопределить удовольствие onChildDraw( в: Холст, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dX: Плавающее, дЯ: Плавать, состояние действия: Int, isCurrentlyActive: логическое значение ) { привязка val = LayoutHistoryDetailItemBinding.bind(viewHolder.itemView) val isCanceled = dX == 0f && !isCurrentlyActive если (isCanceled) { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, false) привязка.itemHistoryUpdateLayout.visibility = View.GONE возвращаться } привязка.itemHistoryUpdateLayout.visibility = View.VISIBLE getDefaultUIUtil().onDraw(c, recyclerView,binding.itemHistoryUpdateLayout, dX/2, dY, actionState, isCurrentlyActive) } }
В настоящее время я реализую в Android параметры обновления/удаления с помощью пролистывания и столкнулся с проблемой в своем коде. Я использую SwipeHelper, чтобы включить пролистывание по строкам списка, и хотя функция пролистывания работает, я столкнулся с проблемой с кнопками внутри прокручиваемого представления. Они не вызывают никаких событий щелчка, а вместо этого любое действие по щелчку приводит к тому, что строка списка возвращается в исходное положение.
Я пробовал использовать recyclerView.adapter?.notifyDataSetChanged() после пролистывания, и хотя это приводит к тому, что события кнопки запускают действия по щелчку, это приводит к сбою в поведении пролистывания. Иногда действие смахивания закрывается, а иногда оно не вызывает никаких действий по закрытию смахивания, независимо от того, насколько сильно я пытаюсь провести его обратно.
Мне нужна помощь, чтобы понять, что может быть причиной этой проблемы и как ее решить.
класс RecyclerSwipeHelper( частный вал recyclerView: RecyclerView, ) : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) { в этом { } переопределить удовольствие onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, цель: RecyclerView.ViewHolder ): Логическое значение { вернуть ложь } переопределить удовольствие onSwiped(viewHolder: RecyclerView.ViewHolder, направление: Int) { // recyclerView.adapter?.notifyDataSetChanged() /* Это тоже не работает */ /* привязка val = LayoutHistoryDetailItemBinding.bind(viewHolder.itemView) привязка.применить { itemHistoryAdd.setOnDebouncedClickListener { itemUpdateAction(item.productSku, true) } } */ } переопределить удовольствие onChildDraw( в: Холст, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dX: Плавающее, дЯ: Плавать, состояние действия: Int, isCurrentlyActive: логическое значение ) { привязка val = LayoutHistoryDetailItemBinding.bind(viewHolder.itemView) val isCanceled = dX == 0f && !isCurrentlyActive если (isCanceled) { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, false) привязка.itemHistoryUpdateLayout.visibility = View.GONE возвращаться } привязка.itemHistoryUpdateLayout.visibility = View.VISIBLE getDefaultUIUtil().onDraw(c, recyclerView,binding.itemHistoryUpdateLayout, dX/2, dY, actionState, isCurrentlyActive) } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Щетка и масштаб реагируют нативную лыж и реагируют обработчик жестов
Anonymous » » в форуме Javascript - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Изображение и h1 не реагируют должным образом при использовании начальной загрузки 4
Anonymous » » в форуме CSS - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-