Merged
Conversation
EdgeToEdge로 인해, onGloballyPositioned로 전달되는 위치값이 SystemBar 영역을 포함해서 전달됨
ex). 장부 온보딩 팝업 등 투명도를 활용하는 화면에서 유의미
Heonbyeong
reviewed
Sep 30, 2025
feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailScreen.kt
Show resolved
Hide resolved
# Conflicts: # app/src/main/java/com/moneymong/moneymong/MainActivity.kt # core/ui/src/main/java/com/moneymong/moneymong/ui/SystemBarColorController.kt # feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerScreen.kt # feature/ledgerdetail/src/main/java/com/moneymong/moneymong/ledgerdetail/LedgerDetailScreen.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
TargetSdk 35를 적용했습니다.(대부분 EdgeToEdge를 대응한 내용입니다)
https://developer.android.com/about/versions/15/behavior-changes-15#edge-to-edge
작업내용
배경
Android 15부터 TargetSdk 35 이상이면 Edge-to-Edge가 기본으로 적용됩니다(UI의 확장을 권장하기에)
현재 프로젝트 디자인에서는
그래서 SystemBar 영역을 보존하면서 각 화면의 UI와 적절한 SystemBar 영역의 색상을 지정하도록 구현했습니다.
-> ex).
BottomNavigationBar 색상 = White->System NavigationBar 영역의 color = White-> ex).
TopBar 색상 = Gray01->StatusBar 영역의 color = Gray01구현 방식
위 요구사항을 만족하려면 각
Screen Composable마다Modifier background속성 이후에SystemBar Padding을 부여해서 구현이 가능합니다. 개인적으로 그렇게 했을 때 놓치는 부분이 생기기 쉽고, 이후 화면이 추가될 때 실수하기도 쉽다고 생각했습니다.그래서
NavHost에 SystemBar 영역만큼의 Padding을 부여한 뒤,Spacer로 SystemBar 영역을 차지하면서 각 화면별로 적절한 color를 지정하는 방식으로 구현했습니다.