List Layout Animations
itemLayoutAnimation lets you define a layout transition that's applied when list items layout changes. You can use one of the predefined transitions like LinearTransition or create your own transition.
Example
import Animated, { LinearTransition } from 'react-native-reanimated';
function App() {
return (
<Animated.FlatList
data={data}
renderItem={renderItem}
itemLayoutAnimation={LinearTransition}
/>
);
}
Remarks
itemLayoutAnimationworks only with a single-columnAnimated.FlatList,numColumnsproperty cannot be greater than 1.- You can change the
itemLayoutAnimationon the fly or disable it by setting it toundefined.
function App() {
const [transition, setTransition] = useState(LinearTransition);
const changeTransition = () => {
setTransition(
transition === LinearTransition ? JumpingTransition : LinearTransition
);
};
const toggleTransition = () => {
setTransition(transition ? undefined : LinearTransition);
};
return (
<Animated.FlatList
data={data}
renderItem={renderItem}
itemLayoutAnimation={transition}
/>
);
}
- If the list items contain neither a
keynoridproperty (which are used by default by the FlatList keyExtractor to create list item keys), you must provide your own implementation of thekeyExtractorfunction that returns a unique key for each list item.
function App() {
return (
<Animated.FlatList
data={data}
renderItem={renderItem}
itemLayoutAnimation={LinearTransition}
keyExtractor={customKeyExtractor}
/>
);
}
Platform compatibility
| Android | iOS | Web |
|---|---|---|
| ✅ | ✅ | ✅ |