[flutter] BottomSheet 외부 탭을 터치해도 사라지지 않게 하는 방법

BottomSheet 위젯은 화면 하단에 나타나는 모달 시트를 구현할 때 사용됩니다. 기본적으로 BottomSheet 외부를 터치하면 BottomSheet가 사라지도록 구현되어 있습니다. 그러나 BottomSheet 외부를 터치했을 때 사라지지 않게 설정하려면 다음과 같이 해야 합니다.

1. Persistent BottomSheet 구현

먼저 showBottomSheet 메서드 대신 showBottomSheet 메서드의 리턴값으로 반환되는 PersistentBottomSheetController를 사용하여 BottomSheet를 구현합니다.

PersistentBottomSheetController controller = scaffoldKey.currentState.showBottomSheet((context) {
  return Container(
    height: 200,
    color: Colors.red,
  );
});

2. 외부 터치 무시 설정

controller 변수에 접근하여 외부 터치를 무시하는 설정을 추가합니다.

controller?.isLocalDrag = false;

위와 같이 설정을 추가하면 BottomSheet 외부를 터치했을 때 사라지지 않고 유지됩니다.

이제 여러분은 flutter에서 BottomSheet 외부를 터치해도 사라지지 않게 설정하는 방법을 알았습니다. 원하는 경우 해당 설정을 이용하여 앱의 사용자 경험을 더 향상시킬 수 있습니다.