2016-12-19 2 views
1

Я использовал ContainerList с функцией перетаскивания в прошлом. Поскольку ContainerList устарел, я теперь пытаюсь использовать что-то другое. Как рекомендовано в документации, я хотел бы использовать только контейнер с BoxLayout по оси y. Однако, учитывая, что это кажется довольно сложным.Drag And Drop Without Containerlist

То, что я пытаюсь (повторно) создать, состоит из списка записей, содержащих ярлыки и кнопки, которые будут сортироваться с помощью longPointerPress, а затем перетаскивания.

В прошлом мне удалось это сделать, сильно изменив классы ContainerList и ContainerList.Entry.

Но с контейнером я не вижу, как это сделать вообще.

Как я понимаю это будет включать:

  • создание компонента ListEntry, полученный из контейнера и доминирующего de.sae.tryout.modules.dragdrop.DraggableContainer.getComponentAt (Int, Int) всегда возвращает это перехватывать все стрелочные взаимодействия и
  • в зависимости от ее состояния, проходящего через указатели события в дочерних компоненты, если это уместно

так как мне кажется, как недопустимый трюк вопроса: Что такое реком чтобы показать такой сортируемый список записей, в которых каждая запись содержит несколько меток и кнопок?

ответ

0

Поскольку каждая запись будет ведущим компонентом, чтобы он выглядел как список контейнеров, просто используя setDraggable(true) на главном компоненте, а setDropTarget(true) на родительском элементе позволит перетащить.

Обратите внимание, что это не будет иметь то же поведение, что и у вас, с длинным указателем, который может быть проблемой, но может и не быть. Если это проблема, вы можете переопределить поведение инициализации перетаскивания ведущего компонента, чтобы приблизить его к способу его работы.

+0

Записи в моем списке должны содержать кнопки и ярлыки. Если я создаю ярлык leadComponent, кнопки не могут использоваться, поскольку метка получает все события указателя. Если я создаю кнопку leadComponent, срабатывает только эта кнопка, и если будут задействованы другие компоненты брата. Ваше решение не работает для меня. –

+0

См. Https://www.codenameone.com/blog/unleading-mutating-accordion.html. –