年视图布局优化: 月份填满视图、加大字号、添加间距
- 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()
|
||||
.weight(1f)
|
||||
.padding(horizontal = 4.dp),
|
||||
verticalArrangement = Arrangement.SpaceEvenly
|
||||
verticalArrangement = Arrangement.Top
|
||||
) {
|
||||
(0 until 4).forEach { row ->
|
||||
val verticalPadding = when (row) {
|
||||
0 -> Modifier.padding(top = 8.dp)
|
||||
3 -> Modifier.padding(bottom = 8.dp)
|
||||
else -> Modifier
|
||||
}
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
horizontalArrangement = Arrangement.SpaceEvenly
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.weight(1f)
|
||||
.then(verticalPadding),
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
(0 until 3).forEach { col ->
|
||||
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(
|
||||
year = year,
|
||||
month = month,
|
||||
isSelected = month == selectedMonth,
|
||||
today = today,
|
||||
onClick = { onMonthClick(month) },
|
||||
modifier = Modifier.weight(1f)
|
||||
modifier = Modifier
|
||||
.weight(1f)
|
||||
.then(horizontalPadding)
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -156,7 +172,7 @@ private fun MiniMonth(
|
||||
Text(
|
||||
text = "${month}月",
|
||||
color = titleColor,
|
||||
fontSize = 9.sp,
|
||||
fontSize = 10.sp,
|
||||
fontWeight = if (isSelected) FontWeight.Bold else FontWeight.Normal,
|
||||
textAlign = TextAlign.Center
|
||||
)
|
||||
@ -169,7 +185,7 @@ private fun MiniMonth(
|
||||
Text(
|
||||
text = label,
|
||||
color = weekdayColor,
|
||||
fontSize = 6.sp,
|
||||
fontSize = 8.sp,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.weight(1f)
|
||||
)
|
||||
@ -178,7 +194,9 @@ private fun MiniMonth(
|
||||
// 日期网格
|
||||
days.chunked(7).forEach { week ->
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(vertical = 2.dp),
|
||||
horizontalArrangement = Arrangement.SpaceEvenly
|
||||
) {
|
||||
week.forEach { dayData ->
|
||||
@ -208,9 +226,9 @@ private fun MiniMonth(
|
||||
Text(
|
||||
text = if (dayData.isCurrentMonth) dayData.date.day.toString() else "",
|
||||
color = color,
|
||||
fontSize = 6.sp,
|
||||
fontSize = 8.sp,
|
||||
textAlign = TextAlign.Center,
|
||||
lineHeight = 9.sp
|
||||
lineHeight = 12.sp
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user