Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 서비스 쓰레드 차이
- 안드로이드 레트로핏 사용법
- 안드로이드 os 구조
- 스택 큐 차이
- 스택 자바 코드
- 2022 플러터 설치
- android retrofit login
- 안드로이드 유닛테스트란
- 안드로이드 라이선스 종류
- 자바 다형성
- rxjava cold observable
- 플러터 설치 2022
- ANR이란
- 서비스 vs 쓰레드
- 객체
- 안드로이드 레트로핏 crud
- rxjava hot observable
- jvm이란
- ar vr 차이
- android ar 개발
- jvm 작동 원리
- 클래스
- Rxjava Observable
- 큐 자바 코드
- 2022 플러터 안드로이드 스튜디오
- 멤버변수
- rxjava disposable
- 안드로이드 유닛 테스트 예시
- 안드로이드 유닛 테스트
- 안드로이드 라이선스
Archives
- Today
- Total
나만을 위한 블로그
[Android Compose] 바텀 시트와 시스템 네비게이션 바가 겹치는 현상 해결 방법 본문
728x90
반응형
바텀 시트를 만들던 도중 아래처럼 바텀 시트의 내용물들이 시스템 네비게이션 바와 겹쳐서 표시되는 현상이 일어났다.
원인은 간단했다. TextField에서 키보드를 띄우기 위해 키보드 inset을 고려해서 아래처럼 코드를 짰었다.
ModalBottomSheet(
// ...
windowInsets = WindowInsets.ime,
)
이렇게 하고 앱을 실행하면 위의 사진처럼 시스템 네비게이션 바와 바텀 시트 안의 내용물이 겹쳐서 표시될 수 있다.
해결하려면 아래처럼 수정하면 된다. 바텀 시트 안에서 Column을 사용하기 때문에 아래처럼 수정했음을 참고한다.
ModalBottomSheet(
// ...
windowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Bottom), // 수정
) {
Column(
modifier = Modifier
.padding(16.dp)
.navigationBarsPadding(), // 추가
)
이렇게 수정한 후 재실행하면 바텀 시트와 시스템 네비게이션 바가 겹치지 않는다.
이제 왜 이렇게 되는지 알아야 할 차례다. 먼저 ModalBottomSheet의 windowInsets를 아래처럼 수정했다.
windowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Bottom),
이것은 시스템 네비게이션 바의 하단 부분만을 inset으로 고려한다는 뜻이다. 키보드가 표시될 때 키보드 관련 inset도 처리하려면 아래처럼 수정할 수 있다.
windowInsets = WindowInsets.systemBars
.only(WindowInsetsSides.Bottom)
.union(WindowInsets.ime)
그리고 Column에 navigationBarsPadding()을 추가해서 Column이 시스템 네비게이션 바 위에 위치하게 한다.
Column(
modifier = Modifier
.padding(16.dp)
.navigationBarsPadding(),
)
이렇게 수정해서 바텀 시트와 시스템 네비게이션 바가 겹치지 않게 수정할 수 있었다.
반응형
'Android > Compose' 카테고리의 다른 글
[Android Compose] MutableState vs MutableStateFlow (0) | 2024.11.25 |
---|---|
[Android Compose] margin 설정 방법 정리 (0) | 2024.10.09 |
[Android Compose] 버튼의 onClick으로 화면 이동하는 법 (0) | 2024.09.14 |
[Android Compose] 바텀 네비게이션 바를 사용해서 컴포즈 화면 이동 구현하는 법 (0) | 2024.09.11 |
[Android Compose] Material3 SnackBar 사용법 (0) | 2024.08.26 |
Comments