① 배운 것

saefaArea를 적용하지 않으면 ios에서 다이어로그가 사진처럼 밑에가 딱 붙어버린다.
패딩으로 조절하면 ios,android 따로 설정해줘야하므로 safeArea로 설정하는것이 바람직하다.
///showModalBottomsheet의 builder에 들어갈 부분
class _BottomDialogState
extends ConsumerState<BottomSheetDialog> {
Widget build(BuildContext context) {
return Container(
height: 100,
decoration: const BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.vertical(
top: Radius.circular(28),
),
),
child: SafeArea( //👈여기에 적용해줘야함
child: Column(
children: [
...내용...
],
),
),
);
}
}
② 회고 (restropective)
동료가 라이브러리에 의존하는것을 안좋아하는 편인것같아서 나도 최대한 라이브러리 없이 구현하려한다. 만약 라이브러리를 썼는데 막상 라이브러리 안에 코드와 파일이 간단하면 그냥 파일자체를 프로젝트에 추가한다.
플러터는 뷰를 공통적으로 쓸 수 있게 해주는 프레임워크이므로, 뷰와 관련된거는 최대한 직접 구현하고(dots indicator..), 안드로이드 ios를 직접 건들여야하는부분(사진 저장, 권한 등..)은 라이브러리를 쓰는게 좋은 것 같다.
③ 개선을 위한 방법