<Ensembled'images clés>
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Spécifie le lieu et les attributs des vues au cours d'un mouvement
séquence. Par défaut, le mouvement passe de l'état initial à l'état final.
En utilisant <KeyFrameSet>
, vous pouvez créer des mouvements plus complexes.
L'élément <KeyFrameSet>
contient
<KeyPosition>
ou
<KeyAttribute>
nœuds. Ces nœuds spécifient la position ou les attributs d'une vue cible à un
un point spécifique du mouvement.
MotionLayout
anime de façon fluide la vue du point de départ à chaque point intermédiaire
puis à la destination finale.
Supposons que l'état initial de la séquence de mouvement comporte une boule opaque dans le
l'angle inférieur gauche de la vue. L'état final rend la balle transparente
le coin supérieur droit. Par défaut, MotionLayout
déplace la balle de manière fluide
en diagonale, devenant progressivement transparents jusqu'à ce qu'elle disparaisse
atteigne sa destination. Vous pouvez modifier ce comportement à l'aide de <KeyFrameSet>
.
Par exemple, vous pouvez faire en sorte que la balle se déplace verticalement jusqu'à l'angle supérieur gauche.
tout en restant entièrement opaque, puis déplacez-vous horizontalement vers le coin supérieur droit
en s'estompant. Pour ce faire, créez un <KeyFrameSet>
et
en ajoutant <KeyPosition>
et <KeyAttribute>
. <KeyPosition>
spécifie l'emplacement intermédiaire de la balle, et le <KeyAttribute>
indique que la balle reste opaque au milieu du mouvement.
Syntaxe
<KeyFrameSet>
[ <KeyPosition/>... ]
[ <KeyAttribute/>...]
</KeyFrameSet>
Contenue dans
<Transition>
Contient
<KeyPosition>
- Spécifie la position d'une vue à un moment précis de la séquence de mouvement.
<KeyAttribute>
- Spécifie les attributs de vue à un moment précis de la séquence de mouvement.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]