반응형
자식위젯을 돌려주는 클로저 위젯이다.
예를 들어 아래처럼 SnackBar를 사용할 때 build 함수의 context 인자가 Scaffold를 찾지 못하하여 예외가 발생한다.
이런 경우에 Builder 위젯을 사용하여 BuildContext의 범위를 지정해 주는 방식으로 해결이 가능하다.
[예외가 발생하는 코드]
RaisedButton(
child: Text("눌러!"),
onPressed: () {
Scaffold.of(context)
..removeCurrentSnackBar()
..showSnackBar(SnackBar(
content: Text("111111111111"),
));
},
),
[예외]
Scaffold.of() called with a context that does not contain a Scaffold.
[Builder 위젯을 사용함]
Builder(
builder: (context) {
return RaisedButton(
child: Text("눌러!"),
onPressed: () {
Scaffold.of(context)
..removeCurrentSnackBar()
..showSnackBar(SnackBar(
content: Text("111111111111"),
));
},
);
},
),
'flutter.widget' 카테고리의 다른 글
WebView (0) | 2020.11.17 |
---|---|
DropdownButton (0) | 2020.11.13 |
[내용추가 필요]PageView (0) | 2019.11.25 |
ValueListenableBuilder<T> (0) | 2019.11.22 |
Card (0) | 2019.11.21 |