[flutter] carousel_slider에서 아이템에 맞는 혜택 정보 표시하기

carousel_slider

carousel_slider는 Flutter의 대표적인 이미지 슬라이더 라이브러리입니다. 이 라이브러리를 사용하여 이미지 갤러리, 제품 목록, 프로모션 배너 등을 표시할 수 있습니다. 이번에는 carousel_slider를 사용하여 각 아이템에 맞는 혜택 정보를 표시하는 방법에 대해 알아보겠습니다.

1. 혜택 정보 데이터 준비하기

먼저, carousel_slider에 표시할 각 아이템에 대한 혜택 정보 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 형식으로 데이터를 정의할 수 있습니다.

class Benefit {
  String title;
  String description;
  String imageUrl;

  Benefit({required this.title, required this.description, required this.imageUrl});
}

List<Benefit> benefits = [
  Benefit(
    title: "무료 배송",
    description: "오늘까지만 무료 배송 서비스를 제공합니다!",
    imageUrl: "https://www.example.com/free_shipping.png",
  ),
  Benefit(
    title: "할인 이벤트",
    description: "이번 주 한정! 모든 제품 20% 할인!",
    imageUrl: "https://www.example.com/discount_event.png",
  ),
  // 추가적인 혜택 정보 데이터도 정의할 수 있습니다.
];

위 예제에서는 Benefit 클래스를 만들어 각 아이템의 제목(title), 설명(description), 이미지 imageUrl을 포함하도록 정의하였고, benefits 리스트에 혜택 정보 데이터를 추가하였습니다.

이제 carousel_slider를 구성하여 아이템에 맞는 혜택 정보를 표시할 수 있습니다. 다음은 carousel_slider를 사용한 예제입니다.

CarouselSlider(
  options: CarouselOptions(
    height: 200,
    aspectRatio: 16 / 9, // 이미지 비율 설정
    viewportFraction: 0.8, // 한 번에 보여질 아이템의 비율 설정
    enableInfiniteScroll: true, // 무한 스크롤 활성화
    autoPlay: true, // 자동 재생 활성화
    autoPlayInterval: Duration(seconds: 3), // 자동 재생 간격 설정
    autoPlayAnimationDuration: Duration(milliseconds: 800), // 자동 재생 애니메이션 속도 설정
    autoPlayCurve: Curves.fastOutSlowIn, // 자동 재생 애니메이션 곡선 설정
    enlargeCenterPage: true, // 선택된 아이템 크기 확대 설정
  ),
  items: benefits.map((benefit) {
    return Builder(
      builder: (BuildContext context) {
        return Container(
          margin: EdgeInsets.symmetric(horizontal: 5),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Image.network(benefit.imageUrl),
              SizedBox(height: 10),
              Text(
                benefit.title,
                style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18),
              ),
              SizedBox(height: 5),
              Text(benefit.description),
            ],
          ),
        );
      },
    );
  }).toList(),
)

위 예제에서는 CarouselOptions를 사용하여 carousel_slider의 설정을 지정하고, items에는 benefits 리스트를 map 함수를 사용하여 각 아이템을 구성합니다. Builder 위젯을 사용하여 각 아이템을 생성하고, Container 위젯을 사용하여 이미지와 텍스트를 포함한 내용을 표시합니다.

위와 같이 carousel_slider를 구성하면 각 아이템마다 해당하는 혜택 정보가 표시되는 이미지 슬라이더를 만들 수 있습니다.

결론

carousel_slider는 Flutter에서 이미지 슬라이더를 구현하는데 유용한 라이브러리입니다. 이를 활용하여 각 아이템에 맞는 혜택 정보를 표시할 수 있습니다. 데이터를 준비하고 carousel_slider를 구성하는 방법을 익혀보세요.


참고 자료