CarouselSlider 레퍼런스 코드
// 텍스트로 할 경우
final List<String> textList = ['텍스트1', '텍스트2', '텍스트3'];
// 임의의 이미지를 순서대로 넣어줄 경우
final List<String> imagePaths = [
'assets/images/image1.png',
'assets/images/image2.png',
'assets/images/image3.png',
'assets/images/image4.png',
];
// 데이터에서 받아오는 경우
if(snapshot.hasData) {
final List<PlayingModel> movieList = snapshot.data!;
return ...
CarouselSlider(
options: CarouselOptions(
autoPlay: true,
height: 200,
enlargeCenterPage: true,
aspectRatio: 16 / 9,
enableInfiniteScroll: true,
autoPlayAnimationDuration: const Duration(milliseconds: 800),
viewportFraction: 0.8,
),
items: movieList.map((movie) {
// 부모 위젯의 제약 조건 사용하여 자식 위젯을 빌드하는 데 사용되는 위젯
// LayOutBuilder
return LayoutBuilder(
builder: (context, constraints) {
// constraints를 통해 Container의 크기를 확인할 수 있습니다.
double containerHeight = constraints.maxHeight;
return Container(
height: containerHeight,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8)),
child: Column(
children: [
Expanded(
child:
//
// 백엔드에서 받아옴
Image(
image: NetworkImage(movie.posterPath),
fit: BoxFit.contain,
),
),
],
),
);
},
);
}).toList(),
);