fix(alignment): Skip 버튼 중복 제거 + Box.BottomCenter 고정 (V2 등에서 잘리는 문제 fix)
문제: - top bar 우측 Skip + 하단 scrollable Skip → 중복 - 일반 사용자/clinical 모드는 Column 이 scroll 비활성 (weight 레이아웃) → V2 같이 콘텐츠 많을 때 맨 아래 Skip 이 화면 밖으로 잘려 안 보임 수정: - top bar Skip 제거 (1개만 유지) - 하단 Skip 을 scrollable Column 밖, Box.align(BottomCenter) 으로 분리 → 콘텐츠 길이와 무관하게 항상 화면 하단에 노출 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+19
-37
@@ -276,26 +276,6 @@ fun PlacementGuideView(appState: AppState) {
|
||||
Icon(Icons.Filled.CheckCircle, stringResource(R.string.placement_ready_desc), tint = Color(0xFF4CAF50), modifier = Modifier.size(24.dp))
|
||||
Spacer(modifier = Modifier.width(4.dp))
|
||||
}
|
||||
// Skip — 항상 top bar 우측에 노출 (스크롤 안에 묻혀 안 보이던 문제 fix).
|
||||
// clinical alignment: endMeasurement 저장 후 Clinical Home / 일반: placementComplete.
|
||||
TextButton(onClick = {
|
||||
isContinuousMode = false
|
||||
val curSess = com.example.medilightv2android.services.ClinicalSessionStore.currentSession
|
||||
if (curSess != null && curSess.mode == com.example.medilightv2android.models.SessionMode.ALIGNMENT) {
|
||||
com.example.medilightv2android.services.ClinicalSessionStore.endMeasurement(context)
|
||||
com.example.medilightv2android.services.ClinicalSessionStore.inClinicalFlow = true
|
||||
appState.currentScreen = AppScreen.CLINICAL_HOME
|
||||
} else {
|
||||
appState.placementComplete()
|
||||
}
|
||||
}) {
|
||||
Text(
|
||||
text = stringResource(R.string.placement_skip),
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
color = MlSecondaryText
|
||||
)
|
||||
}
|
||||
if (appState.isDevMode) {
|
||||
IconButton(onClick = { showPlacementSettings = !showPlacementSettings }) {
|
||||
Icon(Icons.Default.Settings, stringResource(R.string.piezo_settings_desc), tint = if (showPlacementSettings) MlPrimary else MlSecondaryText)
|
||||
@@ -1270,12 +1250,14 @@ fun PlacementGuideView(appState: AppState) {
|
||||
)
|
||||
}
|
||||
|
||||
// Skip button (태블릿: 15 → 20sp)
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
TextButton(onClick = {
|
||||
// 하단 작은 padding (Skip 이 화면 밖 — 아래 Box.BottomCenter 로 분리되어 항상 노출).
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
} // end scrollable Column
|
||||
|
||||
// Skip button — scrollable Column 밖, Box.BottomCenter 에 고정 → V2 등 콘텐츠가 길어도 항상 노출.
|
||||
TextButton(
|
||||
onClick = {
|
||||
isContinuousMode = false
|
||||
// Clinical alignment session 진입 → 저장 후 Clinical Home 으로
|
||||
// Back / Complete / Skip 모두 endMeasurement → measurement.json + labdb 업로드.
|
||||
val curSess = com.example.medilightv2android.services.ClinicalSessionStore.currentSession
|
||||
if (curSess != null && curSess.mode == com.example.medilightv2android.models.SessionMode.ALIGNMENT) {
|
||||
com.example.medilightv2android.services.ClinicalSessionStore.endMeasurement(context)
|
||||
@@ -1284,18 +1266,18 @@ fun PlacementGuideView(appState: AppState) {
|
||||
} else {
|
||||
appState.placementComplete()
|
||||
}
|
||||
}) {
|
||||
Text(
|
||||
text = stringResource(R.string.placement_skip),
|
||||
fontSize = 20.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
color = MlSecondaryText
|
||||
)
|
||||
}
|
||||
|
||||
// 하단 작은 padding 만 (Skip 이 화면 아래 가까이 오도록).
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
} // end scrollable Column
|
||||
},
|
||||
modifier = Modifier
|
||||
.align(Alignment.BottomCenter)
|
||||
.padding(bottom = 4.dp)
|
||||
) {
|
||||
Text(
|
||||
text = stringResource(R.string.placement_skip),
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
color = MlSecondaryText
|
||||
)
|
||||
}
|
||||
|
||||
// Floating settings overlay (개발자 모드)
|
||||
if (appState.isDevMode && showPlacementSettings) {
|
||||
|
||||
Reference in New Issue
Block a user