💡
Check out the normal
animation demo for the full source code here (opens in a new tab)
import * as React from "react";
import { View } from "react-native";
import Carousel from "react-native-reanimated-carousel";
import { renderItem } from "@/utils/render-item";
import { useSharedValue } from "react-native-reanimated";
const defaultDataWith6Colors = [
"#B0604D",
"#899F9C",
"#B3C680",
"#5C6265",
"#F5D399",
"#F1F1F1",
];
function Index() {
const scrollOffsetValue = useSharedValue<number>(0);
return (
<View
id="carousel-component"
dataSet={{ kind: "basic-layouts", name: "normal" }}
>
<Carousel
testID={"xxx"}
loop={true}
width={430}
height={258}
snapEnabled={true}
pagingEnabled={true}
autoPlayInterval={2000}
data={defaultDataWith6Colors}
defaultScrollOffsetValue={scrollOffsetValue}
style={{ width: "100%" }}
onScrollStart={() => {
console.log("Scroll start");
}}
onScrollEnd={() => {
console.log("Scroll end");
}}
onConfigurePanGesture={(g: { enabled: (arg0: boolean) => any }) => {
"worklet";
g.enabled(false);
}}
onSnapToItem={(index: number) => console.log("current index:", index)}
renderItem={renderItem({ rounded: true })}
/>
</View>
);
}
export default Index;