2013-06-14 2 views
9

Il comportamento predefinito del trascinamento della selezione su Android sembra consentire a DragShadow di essere trascinato in qualsiasi punto dello schermo.Android - Limita il trascinamento e il rilascio a una casella di delimitazione

Mi piacerebbe limitare l'area in cui può essere trascinato, sia verso un riquadro di delimitazione specificato, sia verso i limiti di una vista particolare.

Vedo che posso monitorare la posizione di trascinamento con onInterceptTouchEvent, ma non vedo alcun modo per modificare la posizione di trascinamento.

Qualcuno l'ha fatto con successo?

MODIFICA: Dal momento che non ho ricevuto risposte e non ho mai trovato altre risposte adeguate, ho scritto la mia implementazione. Non usa l'api drag-and-drop, lo simula invece. Vedi https://github.com/rfreedman/android-constrained-drag-and-drop-view

+0

Si prega di inserire la propria soluzione come risposta in modo che la domanda possa essere chiusa correttamente. – Warpzit

risposta

3

Dal momento che non ho ricevuto risposte e non ho mai trovato altre risposte adeguate, ho scritto la mia implementazione. Non usa l'api drag-and-drop, lo simula invece. Vedi https://github.com/rfreedman/android-constrained-drag-and-drop-view

+0

Può essere usato al posto di 'relativeLayout'? Sto trascinando un 'pulsante' in un' relativelayout' presente in una 'scrollview'. Esce da 'layout' ogni volta che viene trascinato fino alla fine del' layout'. Se no, allora puoi suggerire cosa si può fare? Questo è il problema -> http://stackoverflow.com/questions/25844743/draggable-button-getting-out-of-relativelayout-whenever-dragged –

+1

Potresti essere in grado di usarlo come figlio del tuo Relayout o potresti semplicemente adottare la sua strategia di intercettare il movimento e consentirlo solo se la nuova posizione si trova all'interno dell'area desiderata. – GreyBeardedGeek

+0

@GreyBeardedGeek hai qualche idea su cosa fare se i tuoi limiti sono come l'app LOCKET LOCKSCREEN, dove non puoi spostarti da nessun'altra parte ma solo sugli oggetti drop e gli oggetti drop sono posti in un semicerchio –