0

Я использую ListViewDraggingAnimation от DevBytes.Проблема ListViewDragging на вложенном фрагменте

Я использую его дважды: в одном фрагменте и во вложенном фрагменте в другой части приложения. Но он отображает то же самое.

На Lollipop 5.1 (Nexus 6) он отлично работает. На моем другом тестовом устройстве Galaxy S3 4.1.1 он отличается: Не-вложенный Fragment работает нормально, но во вложенном, когда я хочу перетащить элемент, он начинает перетаскиваться, а затем, после небольшого перемещения (не достаточно, чтобы переключиться с другой ячейкой), он возвращается к предыдущей позиции.

Для совместимости с API 14, я использую поддержку фрагмент (гнездовые классические фрагменты не работают ниже API 17)

я искал решение, но не нашел что-то. Кто-то уже столкнулся с этой проблемой и решил ее?

Любые подсказки? Спасибо :)

ответ

0

Хорошо, после просмотра кода и журналов с вниманием, наконец, я нашел решение!

Проблема заключалась в том, что motionEvent был отменен, переместив его в родительский вид.

Так, в DynamicListView я изменить функцию onTouchEvent путем добавления this.requestDisallowInterceptTouchEvent(true); в MotionEvent.ACTION_MOVE случае.

Из док:

requestDisallowInterceptTouchEvent (булево disallowIntercept)
Вызывается, когда ребенок не хочет этого родителя и его предки, чтобы перехватывать события касания с onInterceptTouchEvent (MotionEvent).
Этот родитель должен передать этот звонок своим родителям. Этот родитель должен соблюдать это требование на время прикосновения (то есть, только очистить флаг после того, как этот родитель получил вверх или отменить.

Надеется, что это может помочь другим :)

Смежные вопросы