Как поделиться событиями указателя - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу создать список переключателей (или пользовательских элементов управления, которые обрабатывают горизонтальные перемещения указателя).Это легко сделать, поместив эти компоненты в контейнер, используя BoxLayout.y в качестве LayoutManager.Но поскольку компоненты (горизонтально перемещаемый Switch или пользовательские компоненты) занимают много места в списке, прокрутить список очень сложно.Это потому, что все события указателя обрабатываются вложенными компонентами, и ни один из них не попадает в окружающий контейнер - тот, что с BoxLayout.y.

Естественно, я пытался вызвать соответствующий указатель...- Методы родительского Контейнера - что оказалось глупой идеей - привели к StackOverflowError.

Что я действительно хотел бы сделать, так это обработать события указателя как в дочернем, так и в родительском Компонентах.для определенного порогового расстояния для того, чтобы определить, хочет ли пользователь прокручивать по горизонтали или вертикали.

Я заметил, что с вложенными BoxLayout.x-Containers, вложенными в BoxLayout.y-Container, это работает из коробки.Но я не смог понять, как этого добиться с помощью пользовательского элемента управления - и он не работает и с компонентами CN1-Switch-Switch.

Вопрос в том, как сделать это разумным образом.?Это вообще возможно?Или это потребует обнаружения жестов, которое (пока) не является частью Codename One?

1 Ответ

0 голосов
/ 06 декабря 2018

Это поведение по умолчанию Codename One.Прокрутка вступает во владение, и есть смещения, основанные на оси X / Y, которую вы используете.Все это встроено. Как я помню, вы изменили много поведения по умолчанию в Codename One, я предлагаю попробовать чистый проект и посмотреть, как он работает, например, с чем-то вроде этого: https://www.codenameone.com/blog/button-lists.html

...