Określa działanie, które ma zostać wykonane, gdy użytkownik przesunie palcem po układzie. Szybkość sekwencji ruchu oraz ruch w widoku docelowym zależą od szybkości i kierunku przesuwania, w zależności od ograniczeń ustawionych w opcjonalnych parametrach.
Pojedynczy element <Transition>
może mieć wiele węzłów <OnSwipe>
, przy czym każdy <OnSwipe>
określa inny kierunek przesunięcia i inne działanie wykonywane przez użytkownika.
Składnia
<OnSwipe motion:touchAnchorId="@id/target_view" motion:touchAnchorSide="side" [ motion:dragDirection="direction" ] [ motion:dragScale="scale" ] [ motion:maxVelocity="maxVelocity" ] [ motion:maxAcceleration="maxAcceleration" ] />
Atrybuty
motion:touchAnchorId
- Widok przenoszony przez przesuwanie.
motion:touchAnchorSide
- Strona widoku docelowego, w którym jest zakotwiczone przesunięcie.
MotionLayout
utrzymuje stałą odległość między palcem zakotwiczoną a palcem użytkownika. Akceptowane wartości to"left"
,"right"
,"top"
i"bottom"
. motion:dragDirection
- Kierunek przesuwania palcem przez użytkownika. Jeśli ten atrybut jest ustawiony,
<OnSwipe>
dotyczy tylko przesunięć w określonym kierunku. Akceptowane wartości to"dragLeft"
,"dragRight"
,"dragUp"
i"dragDown"
. motion:dragScale
Określa, o jaką odległość przesuwa się widok w stosunku do długości przesunięcia. Wartość domyślna to 1, co oznacza, że widok przesuwa się w zasięgu przesunięcia. Jeśli
dragScale
ma wartość mniejszą niż 1, widok przesuwa się w mniejszym stopniu niż długość przesuwania. Na przykładdragScale
równy 0,5 oznacza, że jeśli przesunięcie zostanie przesunięte o 4 cm, widok docelowy przesunie się o 2 cm.Jeśli
dragScale
ma wartość większą niż 1, widok przesuwa się poza odległość przesunięcia. Na przykładdragScale
= 1,5 oznacza, że jeśli przesunięcie zostanie przesunięte o 4 cm, widok docelowy przesunie się o 6 cm.motion:maxVelocity
Maksymalna prędkość w widoku docelowym.
motion:maxAcceleration
Maksymalne przyspieszenie widoku docelowego.