파파비의 블로그

플러터, flutter) 스넥바 보여주기 (feat Scaffold.of(context)) 본문

개발/flutter

플러터, flutter) 스넥바 보여주기 (feat Scaffold.of(context))

N. Dave 2020. 6. 9. 16:29
반응형

스넥바를 보여주는 방법은,

그 화면의 scaffold 에 접근해서 띄우게 하면 된다.

 

 

Scaffold.of(context)를 하면 해당 위젯에서 제일 가까운 Scaffold로 연결된다.

즉, 자신이 존재하는 화면의 Scaffold에게 접근하는 것이다.

 

Scaffold.of(context).showSnackBar를 실행하고

인수로는 SnackBar위젯을 넣는다.

SnackBar위젯은 content인수를 필수로 가지며 Text위젯을 받는다.

 

장바구니 버튼을 누르면 이렇게 SnackBar가 뜨도록 해두었다.

 

하단에 잘 뜨는 것을 확인하였다. 

 

<참고1>

SnackBar에 duration 속성에 Duration위젯을 설정해두면 뜨는 시간을 조정할 수 있다.

 

<참고2>

SnackBar에 action 속성에 SnackBarAction을 통해, ActionButton들을 넣을 수 있다.

SnackBarAction은 label (string만 받음), 그리고 onPressed 속성을 넣어야 한다.

 

이렇게 하단에 UNDO 버튼을 넣을 수도 있다.

 

<참고3>

snackbar를 유도하는 버튼을 여러번 누르면, duration기간이 끝나고 새로운 snackbar가 생긴다.

그것을 원치않고 누르는 즉시 새로운 snackbar를 유도하고 싶다면,

Scaffold.of(context).showSnackBar를 실행직전에 

Scaffold.of(context).hidecurrentsnackbar를 실행하도록 하면 된다.

 

 

<참고4>

Scaffold.of(context)를 통해 bottomsheet를 실행하던가

Drawer를 연다던가 하는 등의 다양한 작업을 할 수 있다.

반응형
Comments