From 135ecb861d3299ecc143a137474d05e25f84f50b Mon Sep 17 00:00:00 2001 From: atsunatsu Date: Fri, 2 Oct 2026 23:37:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(map):=20=E7=BD=91=E6=A0=BC=E9=80=9A?= =?UTF-8?q?=E8=81=94=E8=AF=A6=E6=83=85=E5=91=BC=E5=8F=B7=E5=88=97=E5=8A=A0?= =?UTF-8?q?=E5=AE=BD=EF=BC=88=E6=AC=A1=E6=95=B0=E5=88=97=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E7=AD=89=E5=88=86=EF=BC=8C=E5=AD=97=E6=A0=B7=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=8D=E5=8F=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 工作网格 QSO 详情弹窗里,中间那一列(通联行的「n QSO」、标记行的「标记」) 原来和左右两列一样占 weight(1f)(各 1/3 宽),而该列文字是居中的,字样两侧的 空白被白白占用。现改为按内容宽度占位(去掉 weight(1f)),左右两列仍各占 weight(1f):两外列等分剩余宽度 ⇒ 中列起点正好落在原居中字样的左边界, 因此 - 「n QSO」「标记」字形位置与之前逐像素一致,日期与展开箭头(右对齐)不动; - 省出的中列左半空白全部交给呼号列,呼号列宽度由 W/3 增至 (W - 字样宽)/2, 411dp 屏约 +33dp,长呼号(含 /P、活动特别呼号)多显示约 3 个字符, 并可一直排到「n QSO」字样左侧才省略。 仅影响地图页「网格通联详情」弹窗内的两类行;设置页日志本行本就是 「呼号 weight + 尾部标签 wrap-content」,口径已一致,未改动。 --- .../rtbishop/look4sat/feature/map/MapScreen.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/feature/map/src/main/java/com/rtbishop/look4sat/feature/map/MapScreen.kt b/feature/map/src/main/java/com/rtbishop/look4sat/feature/map/MapScreen.kt index 68446f0a..d893a721 100644 --- a/feature/map/src/main/java/com/rtbishop/look4sat/feature/map/MapScreen.kt +++ b/feature/map/src/main/java/com/rtbishop/look4sat/feature/map/MapScreen.kt @@ -730,11 +730,12 @@ private fun MarkedStationRow( ) // "标记" column: pin icon (only when the grid has multiple marks) sits // left of the label; pinned (first) row's icon is grey, others pale - // yellow — tapping moves that mark to the top. + // yellow — tapping moves that mark to the top. Wrap-content (no weight), + // same as the count column of the QSO rows, so the callsign column next + // to it takes the leftover width while these glyphs stay row-centred. Row( verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Center, - modifier = Modifier.weight(1f) + horizontalArrangement = Arrangement.Center ) { if (showPin) { Icon( @@ -807,8 +808,13 @@ private fun WorkedGridCallRow( else stringResource(R.string.grid_qso_count_many, callQsos.size), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, - textAlign = androidx.compose.ui.text.style.TextAlign.Center, - modifier = Modifier.weight(1f) + textAlign = androidx.compose.ui.text.style.TextAlign.Center + // No weight: the count column wraps its content, so the callsign + // column (weight 1f, opposite the date column) absorbs the slack + // that used to sit left of the centred count text. The count text + // keeps its exact on-screen position: with equal weights on the + // outer columns the wrap-content middle column starts where the + // centred text used to start, i.e. its centre stays at row centre. ) Row( verticalAlignment = Alignment.CenterVertically,