React Native onPanResponderMove scheint zu selten aufgerufen zu werden

9

Ich versuche, einen benutzerdefinierten vertikalen Schieberegler in React Native zu implementieren. Zu diesem Zweck benutze ich PanResponder . Da der Schieberegler vertikal ist, ändere ich nur den y -Wert. Um das Objekt an den Grenzen des Sliders zu stoppen, überprüfe ich, ob es irgendwelche erreicht hat, bevor ich Animated.event anrufe.

Mein Schieberegler funktioniert einwandfrei, bis ich das Objekt sehr schnell wische. Dann scheint onPanResponderMove callback zu selten aufgerufen zu werden und das Objekt stoppt außerhalb der Spur weiter als die Grenze.

%Vor%

Was mache ich falsch? Ist meine Vorgehensweise korrekt ( Animated.event wenn außerhalb des Sliders)?

UPDATE:

Wahrscheinlich ist das Problem, dass Sie die Bewegung von PanResponder nicht sofort während der Geste stoppen können, wie in beschrieben GitHub-Problem .

    
KlimczakM 02.09.2017, 13:59
quelle

1 Antwort

0

Anstatt zu versuchen, PanResponder daran zu hindern, den pan.y -Wert zu aktualisieren, könnte der Verbraucher des pan -Werts stattdessen einen interpolated -Wert verwenden. Wenn sich die Rahmen beispielsweise in 10 und 250 befinden, verwenden Sie möglicherweise Folgendes:

%Vor%

In der Methode Release müssten Sie die Werte auch innerhalb der Grenzen eingrenzen, aber die Interpolation verhindert, dass die Animation zu weit geht.

    
Holy Joe 24.03.2018 21:38
quelle