[flutter] carousel_slider를 사용하여 공지사항 슬라이더 만들기

안녕하세요! 이번에는 Flutter에서 carousel_slider 패키지를 사용하여 공지사항 슬라이더를 만드는 방법에 대해 알아보겠습니다.

carousel_slider 패키지를 사용하기 위해 먼저 pubspec.yaml 파일에 의존성을 추가해야 합니다. 아래와 같이 dependencies 섹션에 carousel_slider 패키지를 추가해주세요.

dependencies:
  flutter:
    sdk: flutter
  carousel_slider: ^x.x.x  # 사용하고자하는 버전

의존성을 추가한 후에는 Flutter 프로젝트를 업데이트하거나 패키지를 가져와야 합니다. 이를 위해 터미널에서 아래 명령어를 실행해주세요.

flutter pub get

carousel_slider 패키지를 추가한 후에는 Flutter 앱에서 해당 패키지를 사용할 준비가 되었습니다. 이제 슬라이더를 만들기 위해 carousel_slider 위젯을 사용해보겠습니다.

import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';

class NoticeSlider extends StatelessWidget {
  final List<String> noticeList;
  
  NoticeSlider({required this.noticeList});
  
  @override
  Widget build(BuildContext context) {
    return CarouselSlider(
      items: noticeList.map((notice) {
        return Text(notice);
      }).toList(),
      options: CarouselOptions(
        height: 200.0,
        autoPlay: true,
        autoPlayInterval: Duration(seconds: 3),
        autoPlayAnimationDuration: Duration(milliseconds: 800),
        pauseAutoPlayOnTouch: true,
        enlargeCenterPage: true,
        onPageChanged: (index, reason) {
          // 슬라이더가 변경될 때 호출되는 콜백 함수
          print('슬라이더 인덱스: $index');
        },
      ),
    );
  }
}

위 코드에서는 NoticeSlider라는 위젯을 만들었습니다. noticeList라는 스트링 리스트를 인자로 전달받아 각 공지사항을 텍스트 위젯으로 변환하고, CarouselSlider 위젯을 반환하도록 구현했습니다.

CarouselOptions 클래스를 사용하여 슬라이더의 동작 및 모양을 설정할 수 있습니다. 위 코드에서는 height를 200.0으로 설정하고, autoPlay를 활성화하여 자동으로 슬라이드되도록 설정했습니다. 또한 onPageChanged 콜백을 사용하여 슬라이더가 변경될 때 호출되는 함수를 정의할 수 있습니다.

3. NoticeSlider 위젯 사용하기

이제 NoticeSlider 위젯을 사용하여 실제로 슬라이더를 생성해보겠습니다. 아래와 같이 슬라이더를 사용하고자 하는 화면의 빌드 메소드에서 NoticeSlider 위젯을 호출하고, 필요한 공지사항 리스트를 전달해주세요.

class MyHomePage extends StatelessWidget {
  final List<String> noticeList = [
    '공지사항 1',
    '공지사항 2',
    '공지사항 3',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('공지사항'),
      ),
      body: Center(
        child: NoticeSlider(noticeList: noticeList),
      ),
    );
  }
}

위와 같이 슬라이더를 생성하고 싶은 화면의 빌드 메소드에서 NoticeSlider 위젯을 호출하면 공지사항 슬라이더를 볼 수 있습니다.

결론

이제 Flutter에서 carousel_slider 패키지를 사용하여 공지사항 슬라이더를 만드는 방법에 대해 알아보았습니다. carousel_slider 패키지의 다양한 옵션을 활용하여 슬라이더의 동작을 변경하고, 필요에 따라 콜백 함수를 정의하여 슬라이더의 변경 사항을 처리할 수 있습니다. 현재 공지사항을 텍스트로만 표현하여 간단하게 예시를 보여드렸지만, 실제 프로젝트에서는 원하는 내용의 위젯들을 사용하여 보다 다양하고 풍부한 슬라이더를 구성할 수 있습니다.

참고 링크: