Guides · 05

Erscheinen, Verschwinden und Layout

Kinder beim Abgang behalten, bis ihre Bewegung endet, und Positions- und Größenänderungen animieren – auch über Komponenten hinweg.

Animated.Keep

Animated.Keep behält direkte Kinder mit key über ihre depart-Pose hinweg. seed={false} lässt Kinder, die beim ersten Render da sind, bei ihrer Pose starten, wait hält neue Kinder zurück, bis die Abgänge fertig sind, und onDeparted feuert nach dem letzten.

Beispiel wird vorbereitet…

Animated.Scene und move

Animated.Scene misst das committete Layout. Ein Element mit move animiert Änderungen seiner Position und Größe; ein String wie move="pill" verbindet Elemente mit derselben Identität innerhalb der Scene, selbst wenn eins unmountet und ein anderes mountet.

Die Scene besitzt Layout-translate und -scale dieser Elemente, also setz eigene Transforms auf ein verschachteltes Element.

Beispiel wird vorbereitet…

Präsenz mit einem Hook

useAnimatedPresence(visible, { enter, exit }) gibt { mounted, animatedValue } zurück, wenn du das Mounten lieber selbst steuerst.

Toast.jsx
const { mounted, animatedValue } = useAnimatedPresence(open, {
  enter: (value) => spring(value, { toValue: 1 }),
  exit: (value) => timing(value, { toValue: 0, duration: 180 }),
});

return mounted ? <div style={{ opacity: animatedValue }}>Saved</div> : null;

Außerhalb von React

createLayoutScene bietet dieselbe Capture-/Commit-Koordination für jeden Renderer oder manuelle DOM-Änderungen.

outside-react.js
const scene = createLayoutScene({ tempo: { spring: { stiffness: 320, damping: 30 } } });
const card = scene.attach(element, { key: 'card' });

scene.capture(); // before the DOM changes
list.prepend(element); // any renderer or manual DOM work
scene.commit(); // animates from the captured rectangles

Suchen

Tippe, um die Dokumentation zu durchsuchen.