[flutter] BottomSheet에서 버튼 클릭 이벤트 처리하는 방법

Flutter 앱에서 BottomSheet를 사용하여 추가 기능을 제공할 수 있습니다. BottomSheet에는 여러 버튼이 포함되어 있을 수 있으며, 이 버튼들의 클릭 이벤트를 처리하는 방법을 알아보겠습니다.

1. BottomSheet 생성

먼저, BottomSheet를 생성하고 여러 버튼을 추가합니다. 예를 들어, 다음과 같이 showModalBottomSheet 함수를 사용하여 BottomSheet를 표시할 수 있습니다.

void _showBottomSheet(BuildContext context) {
  showModalBottomSheet(
    context: context,
    builder: (BuildContext context) {
      return Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          ListTile(
            leading: Icon(Icons.photo),
            title: Text('사진 선택'),
            onTap: () {
              // TODO: '사진 선택' 버튼 클릭 시 처리할 내용 작성
            },
          ),
          ListTile(
            leading: Icon(Icons.camera),
            title: Text('카메라로 찍기'),
            onTap: () {
              // TODO: '카메라로 찍기' 버튼 클릭 시 처리할 내용 작성
            },
          ),
        ],
      );
    },
  );
}

2. 버튼 클릭 이벤트 처리

위의 예제에서는 각 ListTile 위젯에 onTap 콜백을 제공하여 버튼 클릭 시 처리할 내용을 작성할 수 있습니다. 예를 들어, ‘사진 선택’ 버튼을 클릭했을 때 갤러리에서 이미지를 선택하도록 하는 기능을 추가하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

onTap: () {
  _selectImageFromGallery();
},

_selectImageFromGallery 함수는 갤러리에서 이미지를 선택하고 해당 이미지를 처리하는 메서드일 수 있습니다.

결론

Flutter에서 BottomSheet의 버튼 클릭 이벤트를 처리하기 위해서는 각 버튼에 onTap 콜백을 추가하여 처리할 내용을 작성하면 됩니다. 이를 통해 BottomSheet를 통해 다양한 기능을 제공하고 사용자와의 상호작용을 가능하게 할 수 있습니다.

참고 자료: