11/* eslint-disable react-native/no-inline-styles */
22import * as React from 'react' ;
3- import {
4- Button ,
5- Dimensions ,
6- Image ,
7- ImageSourcePropType ,
8- View ,
9- } from 'react-native' ;
3+ import { Button , Image , ImageSourcePropType , View } from 'react-native' ;
104import Carousel from '../../src/index' ;
115import type { ICarouselInstance } from '../../src/types' ;
126import Animated , {
@@ -16,9 +10,6 @@ import Animated, {
1610 useSharedValue ,
1711} from 'react-native-reanimated' ;
1812
19- const window = Dimensions . get ( 'window' ) ;
20- const PAGE_WIDTH = window . width ;
21-
2213const data : ImageSourcePropType [ ] = [
2314 require ( '../assets/carousel-0.jpg' ) ,
2415 require ( '../assets/carousel-1.jpg' ) ,
@@ -38,27 +29,27 @@ export default function App() {
3829 paddingTop : 100 ,
3930 } }
4031 >
41- < View style = { { width : PAGE_WIDTH , height : 240 } } >
42- < Carousel
43- defaultIndex = { 0 }
44- ref = { r }
45- width = { PAGE_WIDTH }
46- parallaxScrollingScale = { 0.8 }
47- data = { data }
48- renderItem = { ( source , index ) => {
49- return (
50- < Image
51- key = { index }
52- source = { source }
53- style = { {
54- width : '100%' ,
55- height : '100%' ,
56- } }
57- />
58- ) ;
59- } }
60- />
61- </ View >
32+ < Carousel
33+ style = { { height : 240 } }
34+ defaultIndex = { 0 }
35+ ref = { r }
36+ vertical
37+ height = { 240 }
38+ parallaxScrollingScale = { 0.8 }
39+ data = { data }
40+ renderItem = { ( source , index ) => {
41+ return (
42+ < Image
43+ key = { index }
44+ source = { source }
45+ style = { {
46+ width : '100%' ,
47+ height : '100%' ,
48+ } }
49+ />
50+ ) ;
51+ } }
52+ / >
6253 < View
6354 style = { {
6455 marginTop : 24 ,
@@ -79,55 +70,51 @@ export default function App() {
7970 } }
8071 />
8172 </ View >
82- < View
83- style = { {
84- height : 240 ,
85- alignItems : 'center' ,
73+ < Carousel
74+ style = { { height : 240 } }
75+ onProgressChange = { ( _ , absoluteProgress ) => {
76+ progressValue . value = absoluteProgress ;
8677 } }
87- >
88- < Carousel
89- onProgressChange = { ( _ , absoluteProgress ) => {
90- progressValue . value = absoluteProgress ;
78+ vertical
79+ mode = "parallax"
80+ height = { 240 }
81+ parallaxScrollingScale = { 0.8 }
82+ data = { data }
83+ renderItem = { ( source , i ) => {
84+ return (
85+ < Image
86+ key = { i }
87+ source = { source }
88+ style = { {
89+ width : '100%' ,
90+ height : '100%' ,
91+ } }
92+ />
93+ ) ;
94+ } }
95+ />
96+ { ! ! progressValue && (
97+ < View
98+ style = { {
99+ flexDirection : 'row' ,
100+ justifyContent : 'space-between' ,
101+ width : 100 ,
102+ alignSelf : 'center' ,
103+ marginTop : 8 ,
91104 } }
92- mode = "parallax"
93- width = { window . width }
94- parallaxScrollingScale = { 0.8 }
95- data = { data }
96- renderItem = { ( source , i ) => {
105+ >
106+ { data . map ( ( _ , index ) => {
97107 return (
98- < Image
99- key = { i }
100- source = { source }
101- style = { {
102- width : '100%' ,
103- height : '100%' ,
104- } }
108+ < PaginationItem
109+ animValue = { progressValue }
110+ index = { index }
111+ key = { index }
112+ length = { data . length }
105113 />
106114 ) ;
107- } }
108- />
109- { ! ! progressValue && (
110- < View
111- style = { {
112- flexDirection : 'row' ,
113- justifyContent : 'space-between' ,
114- width : 100 ,
115- alignSelf : 'center' ,
116- } }
117- >
118- { data . map ( ( _ , index ) => {
119- return (
120- < PaginationItem
121- animValue = { progressValue }
122- index = { index }
123- key = { index }
124- length = { data . length }
125- />
126- ) ;
127- } ) }
128- </ View >
129- ) }
130- </ View >
115+ } ) }
116+ </ View >
117+ ) }
131118 </ View >
132119 ) ;
133120}
0 commit comments