인프런 커뮤니티 질문&답변

Jaehyeon Lee님의 프로필 이미지
Jaehyeon Lee

작성한 질문수

[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

BottomSheet 사용하기

시스템 키보드에 대응하기 위해 Container의 height와 Column의 padding에 모두 bottomInset을 추가해야 하나요?

작성

·

231

0

안녕하세요.

안드로이드에서만 테스트해보고 있는데

Container의 height에만 bottomInset을 적용했을 때는 원하는대로 잘 동작하고,

Column의 padding에만 bottomInset을  적용했을 때는 여전히 키보드에 가리네요.

iOS에서는 저 두가지 설정을 모두 해주어야 하나요?

답변 1

0

viewinset은 시스템 ui의 크기를 나타냅니다

상태는 두가지가 있는데 키보드가 나타났을때와 안나타났을때입니다.

키보드가 보이지 않을때는 viewinset.bottom이 0 이겠죠

키보드가 보일때는 그 크기만큼 viewinset.bottom이 주어집니다.

 

현재 적용된 코드의 내용에 따르면

그 키보드가 나타난 순간 컨테이너의 크기가 viewinset.bottom만큼 늘어납니다

그런데 저희는 내용에 expand가 적용되어 있어서  컨테이너가 커지면 내용 텍스트필드가 최대로 늘어납니다.

늘어나면 키보드에 가려진 밑부분에 있던 저장버튼이 안보입니다. 

 컬럼에 UI크기만큼의 패딩을 넣으면 저장버튼까지 보입니다. 안의 요소들 밑에 여백을 갖게 하는 것이기 때문입니다.

또, 컬럼에 패딩을 넣지 않고 컨테이너에 패딩을 넣어도 똑같이 적용됩니다. 똑같이  컨테이너의 자식요소들이기 때문이죠

 

컬럼에 있는 패딩에만 bottominset을 넣으면 부모위젯인 컨테이너의 크기가 이미 전체사이즈의 2분의1로 고정되어 있기때문에 패딩을 넣더라도 변화가 없는 것입니다.

부모가 2로 정해져있는데 자식이 4의 크기를 갖는다고 한들 변하지 않습니다. overflow가 됩니다.

 

Jaehyeon Lee님의 프로필 이미지
Jaehyeon Lee

작성한 질문수

질문하기