Holen Sie sich berühren position, während Sie ziehen

Habe ich einige Ansichten, die ich gerne ziehen um. Die Ansichten sind innerhalb
ein LinearLayout, welches sich in einem scrollview.

Möchte ich, um die position des aktuellen finger (touch), um
machen Sie eine glatte scrollen auf meinem scrollview, abhängig von der
Höhe des aktuellen ziehen.

Beginne ich meine draggin nach einem langen Klick mit der
Anzeigen erstellen-in-listener startDrag

view.startDrag(null, shadowBuilder, view, 0);

Ich bin auch in der Lage, um die relativ position des drag
die Ansicht, die derzeit schwebte durch

view.setOnDragListener(new OnDragListener() {
        @Override
        public boolean onDrag(View v, DragEvent event) {
            //get event positions
        }
    });

Aber das funktioniert nur für die anzeigen, wo die Schatten ziehen ist derzeit auf
und DragEvent stellt nur relative Positionen, nicht roh Positionen.

Was ich brauche, ist die position der finger, während das ziehen geschieht. Leider sind alle onTouchEvents bekommen verbraucht, während Sie den Mauszeiger ziehen.

Weiß jemand, wie bekomme ich diese zu arbeiten?

Ps: Ein Weg, der funktioniert (Art), die ich derzeit verwenden, ist die Berechnung der
position des touch über die dragEvent.relativePosition in Kombination
mit der view-position. Aber gibt es nicht einen besseren Weg zu gehen?

  • Willkommen entwerfen Sie Ihre eigenen benutzerdefinierten Geste. Ich würde schauen Sie sich um, wie Menschen Gebärden. Dies ist ein Beispiel von einem Seitensprung stackoverflow.com/questions/4139288/... Oder man könnte das ja tun Ps: aber wenn Sie ziehen, etwas, das ein paar Ebenen tief in einem layout, das Sie tun müssen, wird eine kleine Berechnung, um die touch-position
InformationsquelleAutor JacksOnF1re | 2015-05-29
Schreibe einen Kommentar