본문 바로가기

FLUTTER

[FLUTTER] 위젯의 사이즈 구하기

위젯의 사이즈(높이, 너비)가 필요할 때 GlobalKey를 사용해 왔었는데,

LayoutBuilder로 좀 더 간단하게 사이즈를 구할 수 있었다. (혹시 모를 GlobalKey duplicate 에러도 방지)

 

 

 

화면이 그려진 후에 return 하는 위젯의 context를 가져올 수 있기 때문에 addPostFrameCallback() 안에서 사이즈 구하는 로직 실행

 

 

return Scaffold(
  appBar: AppBar(),
  body: Center(
    child: LayoutBuilder(
      builder: (context, constraints) {
        WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
          print("Container height : ${context.size?.height}");
          print("Container width : ${context.size?.width}");
        });
        return Container(
          height: deviceSize.height / 5.5,
          width: deviceSize.width / 3.5,
          color: Colors.deepPurpleAccent,
        );
      },
    ),
  ),
);