2013-06-14 3 views
9

Поведение перетаскивания по умолчанию на Android, по-видимому, позволяет перетаскивать DragShadow в любом месте экрана.Android - ограничение перетаскивания в ограничительную рамку

Я хотел бы ограничить область, в которую ее можно перетащить - либо в указанную ограничительную рамку, либо в границы определенного вида.

Я вижу, что я могу контролировать местоположение перетаскивания с помощью onInterceptTouchEvent, но я не вижу способа изменить местоположение перетаскивания.

Кто-нибудь сделал это успешно?

EDIT: Поскольку я не получил здесь никаких ответов и никогда не нашел другого подходящего ответа, я написал свою собственную реализацию. Он не использует перетаскивание api, он имитирует его. https://github.com/rfreedman/android-constrained-drag-and-drop-view

+0

Пожалуйста, разместите свое собственное решение в качестве ответа, чтобы вопрос можно было закрыть должным образом. – Warpzit

ответ

3

Поскольку я не получил здесь никаких ответов и никогда не нашел другого подходящего ответа, я написал свою собственную реализацию. Он не использует перетаскивание api, он имитирует его. См. https://github.com/rfreedman/android-constrained-drag-and-drop-view

+0

Можно ли это использовать вместо 'relativeLayout'? Я перетаскиваю 'кнопку' в' relativelayout' в 'scrollview'. При перетаскивании до конца 'layout' заканчивается' layout'. Если нет, то можете ли вы предложить, что можно сделать? В этом проблема -> http://stackoverflow.com/questions/25844743/draggable-button-getting-out-of-relativelayout-whenever-dragged –

+1

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

+0

@GreyBeardedGeek У вас есть идея, что делать, если вы ограничены, как LOCKET-приложение LOCKSCREEN, где вы не можете перемещаться нигде, но только на объекты drop, а объекты drop помещаются в полукруг. –

Смежные вопросы