年视图布局优化: 月份填满视图、加大字号、添加间距
- 4行用 weight(1f) 等分网格区域高度,月份均匀撑高填满视图 - 纵向 Arrangement 从 SpaceEvenly 改为 Top,去掉首行前/末行后大间隙 - 横向 Arrangement 从 SpaceEvenly 改为 SpaceBetween - 第1行上方加 8dp padding,第4行下方加 8dp padding - 月份之间横向加 8dp 间距(col0 end=4dp + col2 start=4dp) - 月份标题字号 9→10sp,星期行 6→8sp,日期数字 6→8sp - 日期行高 9→12sp,日期行之间加 padding(vertical=2.dp) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
17146e2bc0
commit
d9326668a4
@ -98,22 +98,38 @@ fun YearGridView(
|
|||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.weight(1f)
|
.weight(1f)
|
||||||
.padding(horizontal = 4.dp),
|
.padding(horizontal = 4.dp),
|
||||||
verticalArrangement = Arrangement.SpaceEvenly
|
verticalArrangement = Arrangement.Top
|
||||||
) {
|
) {
|
||||||
(0 until 4).forEach { row ->
|
(0 until 4).forEach { row ->
|
||||||
|
val verticalPadding = when (row) {
|
||||||
|
0 -> Modifier.padding(top = 8.dp)
|
||||||
|
3 -> Modifier.padding(bottom = 8.dp)
|
||||||
|
else -> Modifier
|
||||||
|
}
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier
|
||||||
horizontalArrangement = Arrangement.SpaceEvenly
|
.fillMaxWidth()
|
||||||
|
.weight(1f)
|
||||||
|
.then(verticalPadding),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween
|
||||||
) {
|
) {
|
||||||
(0 until 3).forEach { col ->
|
(0 until 3).forEach { col ->
|
||||||
val month = row * 3 + col + 1
|
val month = row * 3 + col + 1
|
||||||
|
val horizontalPadding = when (col) {
|
||||||
|
0 -> Modifier.padding(end = 4.dp)
|
||||||
|
1 -> Modifier.padding(horizontal = 4.dp)
|
||||||
|
2 -> Modifier.padding(start = 4.dp)
|
||||||
|
else -> Modifier
|
||||||
|
}
|
||||||
MiniMonth(
|
MiniMonth(
|
||||||
year = year,
|
year = year,
|
||||||
month = month,
|
month = month,
|
||||||
isSelected = month == selectedMonth,
|
isSelected = month == selectedMonth,
|
||||||
today = today,
|
today = today,
|
||||||
onClick = { onMonthClick(month) },
|
onClick = { onMonthClick(month) },
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier
|
||||||
|
.weight(1f)
|
||||||
|
.then(horizontalPadding)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -156,7 +172,7 @@ private fun MiniMonth(
|
|||||||
Text(
|
Text(
|
||||||
text = "${month}月",
|
text = "${month}月",
|
||||||
color = titleColor,
|
color = titleColor,
|
||||||
fontSize = 9.sp,
|
fontSize = 10.sp,
|
||||||
fontWeight = if (isSelected) FontWeight.Bold else FontWeight.Normal,
|
fontWeight = if (isSelected) FontWeight.Bold else FontWeight.Normal,
|
||||||
textAlign = TextAlign.Center
|
textAlign = TextAlign.Center
|
||||||
)
|
)
|
||||||
@ -169,7 +185,7 @@ private fun MiniMonth(
|
|||||||
Text(
|
Text(
|
||||||
text = label,
|
text = label,
|
||||||
color = weekdayColor,
|
color = weekdayColor,
|
||||||
fontSize = 6.sp,
|
fontSize = 8.sp,
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
)
|
)
|
||||||
@ -178,7 +194,9 @@ private fun MiniMonth(
|
|||||||
// 日期网格
|
// 日期网格
|
||||||
days.chunked(7).forEach { week ->
|
days.chunked(7).forEach { week ->
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(vertical = 2.dp),
|
||||||
horizontalArrangement = Arrangement.SpaceEvenly
|
horizontalArrangement = Arrangement.SpaceEvenly
|
||||||
) {
|
) {
|
||||||
week.forEach { dayData ->
|
week.forEach { dayData ->
|
||||||
@ -208,9 +226,9 @@ private fun MiniMonth(
|
|||||||
Text(
|
Text(
|
||||||
text = if (dayData.isCurrentMonth) dayData.date.day.toString() else "",
|
text = if (dayData.isCurrentMonth) dayData.date.day.toString() else "",
|
||||||
color = color,
|
color = color,
|
||||||
fontSize = 6.sp,
|
fontSize = 8.sp,
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
lineHeight = 9.sp
|
lineHeight = 12.sp
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user