Перетаскивание кнопки из одного линейного макета в другой линейный макет - PullRequest
1 голос
/ 12 марта 2012

У меня линейная линейная раскладка с 10 кнопками.Мне нужно перетащить эти кнопки и добавить их в другой линейный макет (по горизонтали) в порядке их удаления.Пожалуйста, помогите мне в этом?

1 Ответ

3 голосов
/ 13 марта 2012

У меня есть несколько советов о том, как перетаскивать приложения, работающие на уровне API 8 и выше. Я изучил исходный код модуля Android Launcher и узнал о структуре drag-drop, которую они создали для этого. Я обнаружил, что это хороший фундамент, на котором можно строить. Я написал подробности о ключевых классах (DragSource, DropTarget, DragLayer, DragController) в серии статей в моем блоге. Решение слишком длинное, чтобы публиковать здесь, поэтому я отсылаю вас к этим заметкам:

(a) Перемещение видов в Android - часть 2, перетаскивание - описывает базовую среду и включает в себя демонстрационное приложение. Поскольку я в первую очередь занимался изучением перетаскивания, я использовал устаревший класс AbsoluteLayout. Продолжение этого (Часть 3) тоже стоит рассмотреть, поскольку оно развивает понятие DropTarget.

(b) Drag-Drop для Android GridView - демонстрационное приложение, показывающее, как использовать среду перетаскивания для видов сетки. Более того, он показывает, как обойтись без AbsoluteLayout. В этом случае DragLayer и другие классы знают больше о типах макетов, с которыми они работают.

Демонстрационные приложения иллюстрируют изображения и текстовые представления, которые перетаскиваются. Базовый код является совершенно общим: любой вид можно перетаскивать. Проблема, с которой вы столкнетесь при перетаскивании кнопок, заключается в том, чтобы убедиться, что начало операции перетаскивания не будет перепутано с обычной обработкой нажатий кнопок. Попробуйте использовать длинный щелчок для запуска последовательности перетаскивания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...