ux: Sensor Alignment hint 1/2 둘 다 상시 표시 (레이아웃 안정)
이전: waitingForStart 분기로 hint1 또는 hint2 하나만 표시 → 시작 누르면
레이아웃이 위아래 이동.
변경: 두 hint 영역 모두 항상 렌더 → 일러스트/Step 위치 고정.
Hint 1 (일러스트 위): 'Place VesiScan above the pubic bone, then press Start'
(시작 안내, 고정)
Hint 2 (일러스트 아래): displayHint (동적 — 시작 전엔 안내문, 진행 중엔 방향)
waitingForStart 초기 상태에는 hint 1/2 가 비슷한 메시지 보일 수 있음 (의도된
동작 — 레이아웃 안정성 우선).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+2
-8
@@ -221,9 +221,7 @@ fun PlacementGuideView(appState: AppState) {
|
|||||||
.padding(horizontal = 24.dp),
|
.padding(horizontal = 24.dp),
|
||||||
horizontalAlignment = Alignment.CenterHorizontally
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
) {
|
) {
|
||||||
// ─── (1) Hint 1 — 시작 전 안내 ("pubic bone 위에 놓으세요") ───
|
// ─── (1) Hint 1 — 시작 전 안내 (항상 표시, 레이아웃 안정) ───
|
||||||
// waitingForStart 일 때만 표시. 시작 후엔 빈 공간.
|
|
||||||
if (waitingForStart) {
|
|
||||||
val hint1Bg = Color(0xFFFFF3E0)
|
val hint1Bg = Color(0xFFFFF3E0)
|
||||||
Text(
|
Text(
|
||||||
text = "Place VesiScan above the pubic bone, then press Start",
|
text = "Place VesiScan above the pubic bone, then press Start",
|
||||||
@@ -237,7 +235,6 @@ fun PlacementGuideView(appState: AppState) {
|
|||||||
.padding(horizontal = 20.dp, vertical = 14.dp)
|
.padding(horizontal = 20.dp, vertical = 14.dp)
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
}
|
|
||||||
// 타이틀은 top bar 로 이동 (← 옆 절대 가운데) — 본문 중복 제거.
|
// 타이틀은 top bar 로 이동 (← 옆 절대 가운데) — 본문 중복 제거.
|
||||||
|
|
||||||
// ── 가이드 텍스트 (Step 아래, 몸 위) — "pubic bone" 인라인 빨강 ExtraBold 강조 ──
|
// ── 가이드 텍스트 (Step 아래, 몸 위) — "pubic bone" 인라인 빨강 ExtraBold 강조 ──
|
||||||
@@ -486,9 +483,7 @@ fun PlacementGuideView(appState: AppState) {
|
|||||||
|
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
// ─── (5) Hint 2 — 측정 중 방향 안내 ("Slide up slightly ↑" 등) ───
|
// ─── (5) Hint 2 — 측정 중 방향 안내 (항상 표시, 레이아웃 안정) ───
|
||||||
// waitingForStart 가 아닐 때 (=scanning 또는 phaseHold) 만 표시.
|
|
||||||
if (!waitingForStart) {
|
|
||||||
Text(
|
Text(
|
||||||
text = displayHint,
|
text = displayHint,
|
||||||
fontSize = 28.sp, // 22 → 28 (태블릿)
|
fontSize = 28.sp, // 22 → 28 (태블릿)
|
||||||
@@ -500,7 +495,6 @@ fun PlacementGuideView(appState: AppState) {
|
|||||||
.background(hintBg.copy(alpha = 0.7f), RoundedCornerShape(16.dp))
|
.background(hintBg.copy(alpha = 0.7f), RoundedCornerShape(16.dp))
|
||||||
.padding(horizontal = 20.dp, vertical = 14.dp)
|
.padding(horizontal = 20.dp, vertical = 14.dp)
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user