[flutter] 플러터 커퍼티노 스테퍼를 이용한 다중 선택 기능 구현하기

안녕하세요! 이번에는 플러터(Flutter)에서 커퍼티노 스테퍼(Cupertino Stepper)를 이용하여 다중 선택 기능을 구현하는 방법에 대해 알아보겠습니다.

목차

Cupertino 스테퍼란?

Cupertino 스테퍼는 플러터 프레임워크의 일부인 커퍼티노 디자인 시스템에서 제공하는 위젯입니다. iOS 앱의 스타일과 디자인을 따르는데 사용됩니다. Cupertino 스테퍼는 숫자 값을 증가시키거나 감소시키는 컨트롤러를 생성하여 사용자가 값을 선택하고 조작할 수 있는 인터페이스를 제공합니다.

다중 선택 기능은 여러 개의 값을 선택하고 관리하는 기능을 의미합니다. 이 예시에서는 플러터에서 다중 선택을 구현하는 방법을 알아보겠습니다.

다중 선택 기능 구현하기

우선 Cupertino 스테퍼를 사용하기 위해 cupertino_icons 패키지를 의존성으로 추가해주세요. 이 패키지는 Cupertino 아이콘을 사용할 수 있도록 해줍니다.

dependencies:
  cupertino_icons: ^1.0.2

이제 다음과 같이 코드를 작성하여 다중 선택 기능을 구현할 수 있습니다:

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

class MultiSelectStepper extends StatefulWidget {
  @override
  _MultiSelectStepperState createState() => _MultiSelectStepperState();
}

class _MultiSelectStepperState extends State<MultiSelectStepper> {
  List<bool> selectedValues = [false, false, false, false]; // 다중 선택 상태를 관리하는 리스트

  @override
  Widget build(BuildContext context) {
    return CupertinoStepper(
      currentStep: selectedValues.where((value) => value).length,
      onStepTapped: (step) {
        setState(() {
          selectedValues[step] = !selectedValues[step];
        });
      },
      steps: [
        for (int i = 0; i < selectedValues.length; i++)
          CupertinoStep(
            title: Text('Step ${i + 1}'),
            subtitle: selectedValues[i]
                ? Text('Step ${i + 1} is selected')
                : null,
            isActive: true,
            state: selectedValues[i]
                ? StepState.complete
                : StepState.indexed,
            content: SizedBox.shrink(),
          ),
      ],
    );
  }
}

위 코드에서 selectedValues는 다중 선택 상태를 관리하는 리스트입니다. 각 항목이 true이면 해당 스텝이 선택되었음을 의미하고, false이면 선택되지 않았음을 의미합니다.

CupertinoStepper 위젯은 현재 선택된 스텝의 개수를 currentStep 속성으로 전달받아 표시합니다. onStepTapped 콜백으로 사용자가 스텝을 탭할 때마다 선택 상태를 변경할 수 있습니다.

steps 속성에는 각 스텝을 구성하는 CupertinoStep 위젯을 생성합니다. 스텝의 title, subtitle, isActive, state, content 등을 설정하여 각 스텝을 표시합니다.

이렇게 구현된 MultiSelectStepper 위젯을 원하는 곳에서 사용하여 다중 선택 기능을 적용할 수 있습니다.

결론

이번 포스트에서는 플러터의 커퍼티노 스테퍼를 이용하여 다중 선택 기능을 구현하는 방법에 대해 알아보았습니다. 다중 선택은 여러 값을 선택하고 관리해야 하는 상황에서 유용하게 사용될 수 있습니다. 플러터의 다양한 위젯을 활용하여 사용자 친화적인 앱을 개발해보세요!

더 자세한 내용은 Flutter 공식 문서를 참조하시기 바랍니다.

감사합니다!