Flutter에서 Snack Bar 제거하기

2025-05-13 · Uncategorized · 읽는데 11분

Flutter에서 Snack Bar 제거하기
Flutter는 애플리케이션 개발에 있어 매우 유용한 도구입니다. 그 중에서도 Snack Bar는 사용자에게 중요한 메시지를 전달하는 데 잘 사용됩니다.

그러나 특정 화면에서만 Snack Bar를 표시하고, 다른 화면으로 전환할 때 Snack Bar를 제거하고자 할 경우, 몇 가지 방법이 필요합니다. 이번 글에서는 Flutter에서 Snack Bar를 효과적으로 제거하는 방법에 대해 알아보겠습니다.

썸네일

Snack Bar의 이해

Snack Bar는 화면의 하단에 위치하여 일시적으로 메시지를 표시하는 UI 요소입니다. 사용자에게 간단한 알림을 제공하는 데 적합하며, 일반적으로 사용자의 액션에 대한 피드백을 주기 위해 사용됩니다.

Snack Bar는 화면에서 사라지기 전까지 사용자가 이를 확인할 수 있도록 도와줍니다. Snack Bar는 Toast와 유사한 기능을 하지만, 그 위치와 동작 방식에서 차이가 있습니다.

일반적으로 Toast는 화면 하단에 고정되어 있는 반면, Snack Bar는 화면에서 위치가 이동할 수 있습니다. Snack Bar는 사용자가 상호작용할 수 있는 버튼을 포함할 수 있어 더욱 유용한 피드백 수단이 됩니다.

특징 Snack Bar Toast
위치 화면 하단에 이동 가능 화면 하단에 고정
상호작용 버튼을 포함할 수 있음 상호작용 없음
표시 시간 일정 시간 후 자동으로 사라짐 일정 시간 후 자동으로 사라짐

Snack Bar 제거의 필요성

특정 화면에서만 Snack Bar를 표시하고, 다른 화면으로 넘어갈 때 Snack Bar를 제거해야 하는 이유는 여러 가지가 있습니다. 예를 들어, 사용자가 특정 행동(예: 데이터 저장)이 완료되었음을 알리기 위해 Snack Bar를 표시할 수 있습니다.

하지만 사용자가 다른 화면으로 이동할 경우, 이전 화면에서의 Snack Bar가 남아있으면 사용자 경험이 좋지 않을 수 있습니다. 따라서, Snack Bar를 상태 관리와 연결하여 특정 화면에서만 활성화되도록 설정하는 것이 필요합니다.

이를 통해 사용자에게 보다 명확한 피드백을 제공할 수 있으며, 사용자 인터페이스의 일관성을 유지할 수 있습니다.

다른 내용도 보러가기 #1

Flutter에서 Snack Bar의 기본 사용법

Flutter에서는 Snack Bar를 사용하기 위해 Scaffold 위젯을 사용해야 합니다. Scaffold는 Flutter의 기본 레이아웃 구조를 제공하는 위젯으로, Snack Bar를 포함한 다양한 UI 요소들을 관리합니다.

Snack Bar를 표시하기 위해서는 ScaffoldMessenger를 사용하여 Snack Bar를 생성하고, 이를 표시해야 합니다. 아래는 Snack Bar를 표시하는 기본 코드 예제입니다.

dart ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text('메시지가 표시되었습니다.'), duration: Duration(seconds: 2), ), );

위의 코드는 현재의 BuildContext를 사용하여 가장 가까운 ScaffoldMessenger를 찾아 Snack Bar를 표시합니다. 이 때 사용자가 Snack Bar를 확인할 수 있는 시간을 설정할 수 있으며, 메시지 내용도 자유롭게 변경할 수 있습니다.

특정 화면에서만 Snack Bar 표시하기

어느 한 페이지에서만 Snack Bar를 보여주고 다른 화면으로 넘어갈 시 Snack Bar를 없애는 방법에 대해 알아보겠습니다. 이를 위해서는 Builder 위젯을 사용하여 새로운 BuildContext를 생성하고, 해당 Context를 통해 가장 가까운 Scaffold를 찾는 방식으로 문제를 해결할 수 있습니다.

아래는 Snack Bar를 특정 화면에서만 표시하는 예제 코드입니다.

dart Builder( builder: (context) { return ElevatedButton( onPressed: () { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text('이 페이지에서만 표시됩니다.'), ), ); }, child: Text('Snack Bar 표시'), ); }, )

위의 코드에서 Builder 위젯을 사용함으로써 새로운 BuildContext가 생성되며, 이를 통해 ScaffoldMessenger를 사용하여 Snack Bar를 표시할 수 있습니다. 이 방법은 특정 화면에서만 Snack Bar를 표시할 수 있도록 도와줍니다.

코드 요소 설명
Builder 새로운 BuildContext를 생성하는 위젯
ScaffoldMessenger Snack Bar를 표시하는 메서드
ElevatedButton 사용자가 클릭할 수 있는 버튼

다른 화면으로 넘어갈 때 Snack Bar 제거하기

다음으로, 다른 화면으로 넘어갈 때 Snack Bar를 제거하는 방법에 대해 알아보겠습니다. Flutter에서는 화면 전환 시 Navigator를 사용하여 새로운 페이지로 이동합니다.

이 때, 현재 페이지에서 Snack Bar가 표시되고 있다면, 이를 제거하기 위해서는 ScaffoldMessenger를 활용할 수 있습니다. 아래는 다른 화면으로 전환할 때 Snack Bar를 제거하는 코드 예제입니다.

dart Navigator.push( context, MaterialPageRoute(builder: (context) => NextPage()), ).then((_) { ScaffoldMessenger.of(context).hideCurrentSnackBar(); });

위의 예제에서 Navigator.push를 사용하여 다음 페이지로 전환한 후, then 메서드를 통해 Snack Bar를 숨길 수 있습니다. 이를 통해 사용자는 새로운 페이지에서 이전 페이지의 Snack Bar가 보이지 않도록 할 수 있습니다.

코드 요소 설명
Navigator.push 새로운 페이지로 전환하는 메서드
hideCurrentSnackBar 현재 표시되고 있는 Snack Bar를 숨기는 메서드

다른 내용도 보러가기 #2

결론

Flutter에서 Snack Bar를 효과적으로 사용하고 특정 화면에서만 표시하며, 다른 화면으로 넘어갈 때 제거하는 방법에 대해 알아보았습니다. Snack Bar는 사용자에게 중요한 피드백을 제공하는 유용한 UI 요소이며, 이를 통해 사용자 경험을 향상시킬 수 있습니다.

Flutter에서는 다양한 방식으로 Snack Bar를 관리할 수 있으며, Scaffold, ScaffoldMessenger, Builder와 같은 위젯을 통해 이를 구현할 수 있습니다. 이를 통해 개발자는 효과적인 사용자 인터페이스를 구축할 수 있으며, 사용자에게 보다 나은 경험을 제공할 수 있습니다.

Snack Bar의 사용법과 제거 방법을 숙지하시어, 보다 완성도 높은 Flutter 애플리케이션을 개발하시길 바랍니다.

관련 영상

같이 보면 좋은 글