<Posición clave>

Especifica la posición de una vista en un momento determinado durante la secuencia de movimiento. El atributo se usa para ajustar la ruta predeterminada del movimiento.

Por ejemplo, si un objeto comienza en la esquina superior izquierda y termina en la esquina inferior derecha, la secuencia de movimiento predeterminada mueve el objeto en diagonal hacia abajo en la pantalla. Si agregas uno o más elementos <KeyPosition>, puedes deformar la ruta.

Sintaxis

<KeyPosition
    motion:motionTarget="@id/targetPath"
    motion:framePosition="percentage"
    motion:keyPositionType="type"
    motion:percentX="xOffset"
  motion:percentY="yOffset"
/>

Atributos

motion:motionTarget
Vista cuyo movimiento está controlado por <KeyPosition>.
motion:framePosition
Número entero del 1 al 99 que especifica en qué momento de la secuencia de movimiento la vista alcanza el punto especificado por <KeyPosition>. Por ejemplo, si framePosition es 25, la vista alcanza el punto especificado a un cuarto del movimiento.
motion:percentX, motion:percentY
Especifica la posición que alcanza la vista. El atributo keyPositionType especifica cómo se interpretan estos valores.
motion:keyPositionType
Especifica cómo se interpretan los valores percentX y percentY. Las opciones de configuración posibles son las siguientes:
  • parentRelative
  • percentX y percentY se especifican en relación con la vista superior. X es el eje horizontal, que va de 0 para el lado izquierdo a 1 para el lado derecho. Y es el eje vertical, donde 0 es la parte superior y 1 es la parte inferior.

    Por ejemplo, si deseas que la vista de destino alcance un punto en la mitad del lado derecho de la vista superior, establece percentX en 1 y percentY en 0.5.

  • deltaRelative
  • percentX y percentY se especifican en relación con la distancia que recorre la vista en toda la secuencia de movimiento. X es el eje horizontal e Y es el eje vertical. En ambos casos, 0 es la posición inicial de la vista en ese eje y 1 es la posición final.

    Supongamos que la vista de destino se mueve 100 dp hacia arriba y 100 dp hacia la derecha, pero quieres que la vista se desplace hacia abajo 40 dp durante el primer cuarto del movimiento y, luego, se reactive con el arco hacia arriba. Establece framePosition en 25, keyPositionType en deltaRelative y percentY en -0.4.

  • pathRelative
  • El eje X es la dirección en la que se mueve la vista de destino en el transcurso de la ruta, donde 0 es la posición inicial y 1 es la posición final. El eje Y es perpendicular al eje X, con valores positivos a la izquierda de la ruta y valores negativos a la derecha. Por lo tanto, la posición inicial de la vista es (0,0) y la posición final es (1,0). Configurar un percentY distinto de cero hace que la vista se arquee en una dirección o en la otra.

    Supongamos que quieres que la vista tome la mitad de la secuencia de movimiento para cubrir el 10% de la distancia total y, luego, acelere hasta cubrir el otro 90%. Establece framePosition en 50, keyPositionType en pathRelative y percentX en 0.1. percentY permanece en 0.

Se incluye en: