È necessario implementare il cambiamento di scheda corrente quando l'elemento viene trascinato vicino al bordo dello schermo (a sinistra oa destra).Implementare l'elemento di trascinamento sulla feature del bordo dello schermo
Non c'è alcun problema con la funzione di trascinamento N trascinamento e gli interruttori di scheda corrente. Non riesco a gestire correttamente questo evento: quando l'oggetto trascinato è vicino al bordo dello schermo.
Come lo faresti?
Quello che ho provato:
<FrameLayout
android:id="@+id/left_toggle_area"
android:layout_width="30dp"
android:layout_height="fill_parent"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true">
</FrameLayout>
<FrameLayout
android:id="@+id/right_toggle_area"
android:layout_width="30dp"
android:layout_height="fill_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true">
</FrameLayout>
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
... />
L'idea è quella di cambiare scheda corrente di codice quando l'elemento trascinato a zona ginocchiera.
Ma l'evento DragEvent.ACTION_DRAG_ENTERED
in quell'area non si verifica mai da quando (credo) l'GridView
occupa l'intero schermo e si sovrappone semplicemente con le aree di commutazione.
Ho provato a portare queste aree in primo piano all'avvio dell'evento di trascinamento. Ma questo non funziona per qualche motivo.
FrameLayout toggleView = (FrameLayout) v;
toggleView.bringToFront();
toggleView.requestLayout();
toggleView.invalidate();
Se qualcuno dovesse affrontare questo problema, condividi la tua esperienza. O forse c'è un'altra soluzione migliore per questo. Per favore dammi un suggerimento.
Ho pubblicato la mia soluzione corrente. Ma preferisco ancora utilizzare le aree di trascinamento menzionate in questione. Quindi, per favore, benvenuto se qualcuno ha idee. – AnZ
quindi non vuoi cadere e cambiare ancora la scheda? –
Sì, desidero modificare la scheda corrente con l'evento 'DragEvent.ACTION_DRAG_ENTERED' – AnZ