본문 바로가기
Flutter

[flutter] BottomSheet 에 SafeArea 지정하는 방법

by 개발짜 2024. 12. 12.

 

Scaffold 의 BottomSheet 는 SafeArea 가 먹지 않는다. 따라서 화면의 bottom padding 값을 구해서 직접 padding 값을 지정해야한다.

 

Widget build(BuildContext context) {
  // bottom padding 값
  final bottomPaddingSize = MediaQuery.paddingOf(context).bottom;
  
  return Scaffold(
    appBar: ...
    body: ...
    bottomSheet: Container(
      padding: EdgeInsets.only(
        top: 10,
        left: 20,
        right: 20,
        // padding + top 에 준 값까지 -> 키보드 올리면 키보드랑 TextField 랑 붙어보이는 거 때문
        bottom: bottomPaddingSize + 10,
    ),
    ...
  );
}

 

참고: https://stackoverflow.com/questions/49737225/safearea-not-working-in-persistent-bottomsheet-in-flutter

댓글