Określa pozycję widoku w określonym momencie sekwencji ruchu. Ten atrybut służy do dostosowywania domyślnej ścieżki ruchu.
Jeśli na przykład obiekt zaczyna się w lewym górnym rogu, a kończy w prawym dolnym rogu, domyślna sekwencja ruchu przesuwa go po przekątnej w dół ekranu. Dodając co najmniej 1 element <KeyPosition>
, możesz zniekształcić ścieżkę.
Składnia
<KeyPosition motion:motionTarget="@id/targetPath" motion:framePosition="percentage" motion:keyPositionType="type" motion:percentX="xOffset" motion:percentY="yOffset" />
Atrybuty
motion:motionTarget
- Wyświetl, którego ruchem steruje to urządzenie
<KeyPosition>
. motion:framePosition
- Liczba całkowita od 1 do 99, która określa, w którym momencie sekwencji ruchu widok dojdzie do punktu określonego w elemencie
<KeyPosition>
. Jeśli np. wartośćframePosition
ma wartość 25, widok osiąga określoną czwartą długości ruchu. motion:percentX
,motion:percentY
- Określ pozycję, do której ma docierać dany widok. Atrybut
keyPositionType
określa sposób interpretacji tych wartości. motion:keyPositionType
- Określa sposób interpretacji wartości
percentX
ipercentY
. Dostępne ustawienia to: parentRelative
Dane
percentX
ipercentY
są określone względem widoku nadrzędnego. X to oś pozioma z zakresu od 0 dla lewej strony do 1 dla prawej strony. Y to oś pionowa, gdzie 0 to góra, a 1 – dolna.Jeśli np.chcesz, by widok docelowy znajdował się w połowie prawej strony widoku nadrzędnego, ustaw dla
percentX
wartość 1 ipercentY
na 0,5.deltaRelative
Parametry
percentX
ipercentY
są ustawiane względem odległości, jaką porusza widok w trakcie całej sekwencji ruchu. X jest osią poziomą, a Y – pionową. W obu przypadkach 0 to pozycja początkowa widoku na tej osi, a 1 – pozycja końcowa.Załóżmy, że widok docelowy przesuwa się o 100 dp w górę i o 100 dp w prawo, ale chcesz, aby widok przesuwał się w dół o 40 dp w pierwszej ćwiartce ruchu, a następnie do tyłu. Ustaw
framePosition
na 25,keyPositionType
nadeltaRelative
, apercentY
na -0,4.pathRelative
Oś X to kierunek, w którym przesuwa się widok docelowy w trakcie ścieżki, gdzie 0 to pozycja początkowa, a 1 – pozycja końcowa. Oś Y jest prostopadła do osi X. Wartości dodatnie po lewej stronie ścieżki, a ujemne po prawej. Początkowa pozycja widoku to
(0,0)
, a pozycja końcowa –(1,0)
. Jeśli zasadapercentY
ma wartość inną niż 0, widok zakrzywia się w jednym lub drugim kierunku.Załóżmy, że chcesz, by połowa sekwencji ruchu pokonała 10% całkowitej odległości, a następnie przyspieszysz, aby pokryć pozostałe 90%. Ustaw
framePosition
na 50,keyPositionType
napathRelative
, apercentX
na 0,1.percentY
pozostaje 0.