<KeyFrameSet>
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Especifica a localização e os atributos das visualizações ao longo do movimento
sequência. Por padrão, o movimento prossegue do estado inicial para o estado final.
Ao usar <KeyFrameSet>
, você pode criar movimentos mais complexos.
O <KeyFrameSet>
contém
<KeyPosition>
ou
<KeyAttribute>
nós. Esses nós especificam a posição ou os atributos de uma visualização de destino em um
ponto específico do movimento.
MotionLayout
anima suavemente a visualização do ponto inicial até cada ponto intermediário
e, em seguida, para o destino final.
Suponha que o estado inicial da sequência de movimento tenha uma bola opaca na
no canto inferior esquerdo da visualização, e o estado final torna a bola transparente
no canto superior direito. Por padrão, o MotionLayout
move a bola suavemente
em uma linha diagonal, tornando-se gradualmente transparente até desaparecer quando
chega ao destino. Use <KeyFrameSet>
para mudar esse comportamento.
Por exemplo, você pode fazer a bola se mover verticalmente até o canto superior esquerdo
ficando totalmente opacos, depois movemos horizontalmente até a
enquanto desaparece. Para isso, crie um <KeyFrameSet>
e
adicionando um <KeyPosition>
e <KeyAttribute>
dentro dele. O <KeyPosition>
especifica o local intermediário da bola e o <KeyAttribute>
especifica que a bola permanece opaca no ponto médio do movimento.
Sintaxe
<KeyFrameSet>
[ <KeyPosition/>... ]
[ <KeyAttribute/>...]
</KeyFrameSet>
Contido em
<Transition>
Contém
<KeyPosition>
- Especifica a posição de uma visualização em um momento específico durante a sequência de movimento.
<KeyAttribute>
- Especifica atributos de visualização em um momento específico durante a sequência de movimento.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# <KeyFrameSet>\n\nSpecifies location and attributes for views over the course of the motion\nsequence. By default, motion proceeds from the initial state to the end state.\nBy using `\u003cKeyFrameSet\u003e`, you can build more complex motions.\n\nThe `\u003cKeyFrameSet\u003e` contains\n[`\u003cKeyPosition\u003e`](/training/constraint-layout/motionlayout/ref/keyposition) or\n[`\u003cKeyAttribute\u003e`](/training/constraint-layout/motionlayout/ref/keyattribute)\nnodes. These nodes specify the position or attributes of a target view at a\nspecific point in the motion.\n[`MotionLayout`](/reference/androidx/constraintlayout/motion/widget/MotionLayout)\nsmoothly animates the view from the starting point to each intermediate point\nand then to the final destination.\n\nSuppose the initial state of the motion sequence has an opaque ball in the\nlower-left corner of the view, and the final state makes the ball transparent in\nthe upper-right corner. By default, the `MotionLayout` moves the ball smoothly\nin a diagonal line, gradually becoming transparent until it vanishes when it\nreaches its destination. By using `\u003cKeyFrameSet\u003e`, you can change this behavior.\nFor example, you can make the ball move vertically to the upper-left corner\nwhile remaining entirely opaque, then move horizontally to the upper-right\ncorner while fading out. You can do this by creating a `\u003cKeyFrameSet\u003e` and\nadding a `\u003cKeyPosition\u003e` and `\u003cKeyAttribute\u003e` inside it. The `\u003cKeyPosition\u003e`\nspecifies the intermediate location of the ball, and the `\u003cKeyAttribute\u003e`\nspecifies that the ball remains opaque at the midpoint of the motion.\n\nSyntax\n------\n\n```xml\n\u003cKeyFrameSet\u003e\n [ \u003cKeyPosition/\u003e... ]\n [ \u003cKeyAttribute/\u003e...]\n\u003c/KeyFrameSet\u003e\n```\n\nContained in\n------------\n\n[`\u003cTransition\u003e`](/training/constraint-layout/motionlayout/ref/transition)\n\nContains\n--------\n\n[`\u003cKeyPosition\u003e`](/training/constraint-layout/motionlayout/ref/keyposition)\n: Specifies a view's position at a specific moment during the motion sequence.\n\n[`\u003cKeyAttribute\u003e`](/training/constraint-layout/motionlayout/ref/keyattribute)\n: Specifies view attributes at a specific moment during the motion sequence."]]