169 похожих чатов

Привет всем👋🏻 Реализовываю архитектуру касаний через onInterceptTouchEvent, onTouchEvent Что нужно BottomSheet со списком,


Когда свайпаю вниз по BottomSheet, он перехватывает касания, сдвигается вниз (обновляет данные).
Когда свайпаю вбок по item списка список показывает меню, то есть BottomSheet должен отменить перехват событий onTouchEvent и передать события вниз по иерархии в item.

❌Проблема
Однажды передав события в onTouchEvent, нельзя его спустить вниз по иерархии в item, можно только переслать вверх по иерархии в родительский onTouchEvent

❓Скажите плиз, реально ли отменить onInterceptTouchEvent,
что бы viewgroup смог передать событие вниз
(в моем примере при условии если движения свайпа вбок)?

25 ответов

15 просмотров

Можно перехватывать onTouchEvent в кнопке, запоминать флаг, что касание началось, и передавать дальше. Уже в родительском onTouchEvent решать что делать, в зависимости от флагов

Anton-ElTonio Автор вопроса
Alex Android
Можно перехватывать onTouchEvent в кнопке, запомин...

Вопросы: 1. Как передавать флаг/переменную вверх по иерархии? 2. Если у меня длинющая наследовательность, мне по идее нужно сделать CustomViewGroup для каждого родителя что бы обрабатывать передавать дальше false в onTouchEvent? Можно ли напрямую обратиться к самому верхнему родителю?

1. Где-то в переменных фрагмента/активити/другом хранилище 2. Самый верхний родитель это window. Тут по ситуации

Anton-ElTonio Автор вопроса
Alex Android
1. Где-то в переменных фрагмента/активити/другом х...

2. Как можно в onTouchEvent вернуть false и передать событие в самые верхние уровни?

Anton-ElTonio Автор вопроса

Маня подбешивает эта магия)

ну как только ты возвращаешь false, происходит отказ от жеста, он обрабатывается кем-то другим

Anton-ElTonio Автор вопроса

Как 1 раз передать события на верх при условии, а все остальные обрабатывать по дефолту?

Anton-ElTonio Автор вопроса
Mike (деньги не клянчу)
ну как только ты возвращаешь false, происходит отк...

Это потрясающе, 1 раз отказался, а как перестать отказываться навсегда?

Anton ElTonio
Это потрясающе, 1 раз отказался, а как перестать о...

видимо, нужно не отказываться, а, наоборот, использовать intercept со стороны родителя

Anton-ElTonio Автор вопроса
Mike (деньги не клянчу)
видимо, нужно не отказываться, а, наоборот, исполь...

Если правильно понял тебя, типа обрабатывать все условия у родителя через intercept (допустим свайп вниз), а все отальное пусть обрабатывает дочерний? Делал, та же история, как только родитель забирает себе жесты, то он их забирает навсегда, и уже наш item не получит их

Anton-ElTonio Автор вопроса

Не совсем понял, dispatchTouchEvent имеешь ввиду? Может я что-то не понимаю, чем он может помочь?

Anton ElTonio
Не совсем понял, dispatchTouchEvent имеешь ввиду? ...

родитель может сам передать тач детям, если посчитает нужным

Anton-ElTonio Автор вопроса
Mike (деньги не клянчу)
родитель может сам передать тач детям, если посчит...

Нужно почитать, Тип я могу указать не передавать событие вниз?

Anton-ElTonio Автор вопроса
Alex Android
return false

Имел ввиду сразу на самый верхній уровень

Anton-ElTonio Автор вопроса

Привет👋🏻 Продолжение вопроса на засыпку onTouchEvent Как можно в родительском viewgroup перехватить касания на 1 жест через onInterceptTouchEvent и потом отменить перехвати по условию и передавать дальше в дочерний view Или... как в дочернем view перехватить касания в onTouchEvent и по условию передать наверх в viewgroup но на 1 жест, потом дальше продолжить обрабатывать в дочернем onTouchEvent? Или по другому. Как перестать навсегда перехватывать касания?

1. Обработчик онТач возвращает тру/фолс в зависимости от того надо ли передать обработку дальше подлежащим вью - возвращай что надо 2. Посл.вопрос - ну, сними отработчик вообще к примеру.

Anton-ElTonio Автор вопроса
Сергей П.
1. Обработчик онТач возвращает тру/фолс в зависимо...

1. онТач возвращает тру/фолс в зависимости надо ли передать на верх касания или нет. Но проблема заметил, что оно передает навсегда. То есть как только ты передашь касание наверх в кастомный СкроллВью к примеру, то все, больше нижлежащие view не смогут брать касания

Anton-ElTonio Автор вопроса

Гм, у меня следующий жест не приходит туда же, Судя по поведению и логам. Короче элемент списка уже перестает касаться, тока скрол отпрабатывает

Anton ElTonio
Гм, у меня следующий жест не приходит туда же, Суд...

В онтач или онинтерсепт? С интерсептом не работал А в онтач следующим за акшн_даун обычне приходят перемещения, не помню куда приходили

Anton-ElTonio Автор вопроса
Сергей П.
В онтач или онинтерсепт? С интерсептом не работал ...

Ой, тогда это история для тебя будет кашей, если начнешь разбираться, архитектура касания в андроиде те еще дебри)

Anton ElTonio
Ой, тогда это история для тебя будет кашей, если н...

Не, не кашей, разбирался когда раскраску писал, там надо все жесты обрабатывать было - и масштаб и клики и даблклики и черта лысого

Anton ElTonio
Привет👋🏻 Продолжение вопроса на засыпку onTouchEve...

посмотрите про requestDisallowInterceptTouchEvent, как-то так

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта