Когда свайпаю вниз по BottomSheet, он перехватывает касания, сдвигается вниз (обновляет данные).
Когда свайпаю вбок по item списка список показывает меню, то есть BottomSheet должен отменить перехват событий onTouchEvent и передать события вниз по иерархии в item.
❌Проблема
Однажды передав события в onTouchEvent, нельзя его спустить вниз по иерархии в item, можно только переслать вверх по иерархии в родительский onTouchEvent
❓Скажите плиз, реально ли отменить onInterceptTouchEvent,
что бы viewgroup смог передать событие вниз
(в моем примере при условии если движения свайпа вбок)?
Можно перехватывать onTouchEvent в кнопке, запоминать флаг, что касание началось, и передавать дальше. Уже в родительском onTouchEvent решать что делать, в зависимости от флагов
Вопросы: 1. Как передавать флаг/переменную вверх по иерархии? 2. Если у меня длинющая наследовательность, мне по идее нужно сделать CustomViewGroup для каждого родителя что бы обрабатывать передавать дальше false в onTouchEvent? Можно ли напрямую обратиться к самому верхнему родителю?
1. Где-то в переменных фрагмента/активити/другом хранилище 2. Самый верхний родитель это window. Тут по ситуации
2. Как можно в onTouchEvent вернуть false и передать событие в самые верхние уровни?
Маня подбешивает эта магия)
ну как только ты возвращаешь false, происходит отказ от жеста, он обрабатывается кем-то другим
Как 1 раз передать события на верх при условии, а все остальные обрабатывать по дефолту?
Это потрясающе, 1 раз отказался, а как перестать отказываться навсегда?
видимо, нужно не отказываться, а, наоборот, использовать intercept со стороны родителя
Если правильно понял тебя, типа обрабатывать все условия у родителя через intercept (допустим свайп вниз), а все отальное пусть обрабатывает дочерний? Делал, та же история, как только родитель забирает себе жесты, то он их забирает навсегда, и уже наш item не получит их
из родителя хотя бы можно самому сделать dispatch
Не совсем понял, dispatchTouchEvent имеешь ввиду? Может я что-то не понимаю, чем он может помочь?
родитель может сам передать тач детям, если посчитает нужным
Нужно почитать, Тип я могу указать не передавать событие вниз?
Имел ввиду сразу на самый верхній уровень
Привет👋🏻 Продолжение вопроса на засыпку onTouchEvent Как можно в родительском viewgroup перехватить касания на 1 жест через onInterceptTouchEvent и потом отменить перехвати по условию и передавать дальше в дочерний view Или... как в дочернем view перехватить касания в onTouchEvent и по условию передать наверх в viewgroup но на 1 жест, потом дальше продолжить обрабатывать в дочернем onTouchEvent? Или по другому. Как перестать навсегда перехватывать касания?
1. Обработчик онТач возвращает тру/фолс в зависимости от того надо ли передать обработку дальше подлежащим вью - возвращай что надо 2. Посл.вопрос - ну, сними отработчик вообще к примеру.
1. онТач возвращает тру/фолс в зависимости надо ли передать на верх касания или нет. Но проблема заметил, что оно передает навсегда. То есть как только ты передашь касание наверх в кастомный СкроллВью к примеру, то все, больше нижлежащие view не смогут брать касания
Гм, у меня следующий жест не приходит туда же, Судя по поведению и логам. Короче элемент списка уже перестает касаться, тока скрол отпрабатывает
В онтач или онинтерсепт? С интерсептом не работал А в онтач следующим за акшн_даун обычне приходят перемещения, не помню куда приходили
Ой, тогда это история для тебя будет кашей, если начнешь разбираться, архитектура касания в андроиде те еще дебри)
Не, не кашей, разбирался когда раскраску писал, там надо все жесты обрабатывать было - и масштаб и клики и даблклики и черта лысого
посмотрите про requestDisallowInterceptTouchEvent, как-то так
Обсуждают сегодня