You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(platform): 루트 Scaffold 가 깐 내비 바 몫을 하위 화면이 또 더한다 — 3버튼 내비에서 하단 CTA 가 48dp 높이 뜬다 #1891
루트 Scaffold 가 내비 바 몫을 깔아 두는데 소비로 잡히지 않아, 그 아래 화면들이 내비 바를 한 번 더 더한다. 3버튼 내비 기기에서 하단 버튼이 설계보다 48dp 높이 뜬다. 키보드와 무관하게, 앱을 켜자마자 그렇다.
원인
AppNavigation.kt:78-92 — 루트 Scaffold 가 contentWindowInsets = WindowInsets.systemBars.only(Horizontal + Bottom) 으로 내비 바를 innerPadding 에 넣고, NavHost(modifier = Modifier.padding(innerPadding)) 로 consumeWindowInsets 없이 전달한다. 그래서 하위 화면에서 WindowInsets.navigationBars 를 읽거나 navigationBarsPadding() 을 걸면 원본 값이 그대로 나와 두 번 더해진다.
키보드 없이 FindIdScreen 의 「다음」 버튼: 클릭 노드 bounds [53,1904][1027,2030] → 화면 바닥까지 370px = 141dp. 설계 97dp 와 44dp 차이(≈ 내비 바 한 겹 48dp − 4dp 상수). #1853 이 키보드가 뜬 동안의 같은 종류 이중 계산을 고쳤지만 키보드 없는 이 자리는 그 PR 범위 밖이라 그대로다.
어디서 고칠 것인가
두 갈래이고 정하고 시작해야 한다.
루트에서 소비한다 — NavHost(modifier = Modifier.padding(innerPadding).consumeWindowInsets(innerPadding)). 그러면 하위의 navigationBarsPadding() 은 자동으로 0 이 된다(WelcomeScreen 해결). 단 FlowStepScaffold 처럼 asPaddingValues() 로 원본 값을 직접 읽는 자리는 소비를 모르므로 함께 고쳐야 한다. 전 화면에 영향이 가는 변경이라 각 모듈 담당이 자기 화면을 한 번씩 봐야 한다.
자리마다 뺀다 — 루트를 두고 FlowStepScaffold 의 navBarHeight 항을 걷고, WelcomeScreen 의 navigationBarsPadding() 을 지운다. 국소적이지만 다음에 같은 실수가 다시 들어온다.
1 이 정본에 가깝다. 다만 FlowStepScaffold 의 원래 설계 문구 「제스처 바: 화면 하단으로부터 49dp / 구형 내비 바: 바로부터 49dp」는 루트가 내비 바를 깔지 않는다는 전제로 쓰인 것이라, 루트가 깔고 있는 지금은 제스처에서 49+24dp 가 된다. 시안이 원하는 게 어느 쪽인지 그 절에서 확정한다.
완료 조건
3버튼 내비에서 FlowStepScaffold CTA 가 내비 바 위 49dp, 제스처에서 시안이 정한 값에 온다 — 에뮬레이터 실측으로.
WelcomeScreen 버튼 위치가 이중 패딩 없이 온다.
루트 아래에서 WindowInsets.navigationBars 원본을 직접 읽는 자리가 남지 않거나, 남는 이유가 적혀 있다.
Activity
github-actions commentedon Sep 4, 2026
bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:
값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.