diff --git a/app/src/main/java/com/rainy/token/ui/dashboard/DashboardScreen.kt b/app/src/main/java/com/rainy/token/ui/dashboard/DashboardScreen.kt index 5c90572..14351d9 100644 --- a/app/src/main/java/com/rainy/token/ui/dashboard/DashboardScreen.kt +++ b/app/src/main/java/com/rainy/token/ui/dashboard/DashboardScreen.kt @@ -384,7 +384,22 @@ fun DashboardScreen( val maxDialogHeight = (LocalConfiguration.current.screenHeightDp * 0.72f).dp AlertDialog( onDismissRequest = { showSub2PanelManagement = false }, - title = { Text(stringResource(R.string.sub2_panel_manage_title), fontWeight = FontWeight.Bold) }, + // 标题与刷新按钮同一行:刷新重新拉取 Key 列表与分组 + title = { + Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth()) { + Text( + text = stringResource(R.string.sub2_panel_manage_title), + fontWeight = FontWeight.Bold, + modifier = Modifier.weight(1f) + ) + IconButton(onClick = { viewModel.loadPanelKeys(); viewModel.loadPanelGroups() }) { + Icon( + imageVector = Icons.Filled.Refresh, + contentDescription = stringResource(R.string.action_refresh) + ) + } + } + }, text = { Box( modifier = Modifier diff --git a/app/src/main/java/com/rainy/token/ui/servicedetail/Sub2ApiPanelManagement.kt b/app/src/main/java/com/rainy/token/ui/servicedetail/Sub2ApiPanelManagement.kt index 9aeea5c..8600ece 100644 --- a/app/src/main/java/com/rainy/token/ui/servicedetail/Sub2ApiPanelManagement.kt +++ b/app/src/main/java/com/rainy/token/ui/servicedetail/Sub2ApiPanelManagement.kt @@ -124,15 +124,10 @@ internal fun Sub2ApiPanelManagement( Icon(Icons.Filled.Refresh, contentDescription = stringResource(R.string.action_refresh)) } } - } else { - // 标题由外部弹窗提供时,这里保留一个刷新按钮,方便手动重新拉取 Key/分组 - Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth()) { - Spacer(modifier = Modifier.weight(1f)) - IconButton(onClick = { onLoadKeys(); onLoadGroups() }) { - Icon(Icons.Filled.Refresh, contentDescription = stringResource(R.string.action_refresh)) - } - } } + // showHeader=false 时不渲染任何标题/刷新行: + // 弹窗场景由调用方把标题与刷新按钮放在同一行(见 DashboardScreen 的 title 槽), + // 这里再放一行会让刷新按钮掉到标题下面,视觉上多出一条空行。 (actionMessage ?: lastResult)?.let { msg -> Spacer(modifier = Modifier.height(8.dp))