320x100
728x90
1) 키보드가 위젯을 가리는 경우
다음과 같이 BOTTOM OVERFLOWED BY... 에러가 발생한다.
이를 해결하기 위한 방법은,
첫번째로 가려진 위젯의 제일 상위 위젯을
child : Column(
children : [
Container(
...
),
...
아래와 같이 SingleChildScrollView로 감싼다.
child: SingleChildScrollView(
keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,
child: Column(
children: [
Container(
alignment: Alignment.centerLeft,
...
),
여기서 중요한 것은, 아래 코드를 넣는 것이다.
keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,
2) 키보드 열린 채로 뒤로가기 버튼을 누르거나, 텍스트 제출과 버튼을 눌렀을 때 나타나는
overflowed 문제 해결하는 방법이다.
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
FocusScope.of(context).unfocus();
},
...
위젯을 GestureDetector로 감싼 뒤, 위와 같이 코드를 작성해준다.
HitTestBehavior.opaque란
범위 내에서 이벤트를 수신하며, 시각적으로 뒤에있는 타겟 또한 이벤트를 수신할 수 있도록 하는 것이다.
사용자가 해당 위젯 외 부분을 tap 하면 unfocus를 하도록 한다.
728x90
반응형
'Flutter' 카테고리의 다른 글
[Flutter/플러터] Dart 반복문 쓰지 않고 리스트 합, 최댓값, 최솟값 구하기 - fold (1) | 2022.09.23 |
---|---|
[Flutter/플러터] 플러터 상태관리 - Getx(GetBuilder, Reactive State Manager)(1) (0) | 2022.09.23 |
[Flutter/플러터] Dart에서의 변수 할당(final, const, static) (1) | 2022.09.21 |
[Flutter/플러터] 뒤로가기 버튼 두 번 클릭 후 앱 종료하기 (1) | 2022.08.02 |
[Flutter/플러터] flutter_native_splash를 활용하여 splash 화면 만들기 (0) | 2022.08.02 |