flutter.widget

Builder

paulaner80 2019. 11. 27. 14:17
반응형

자식위젯을 돌려주는 클로저 위젯이다.



예를 들어 아래처럼 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