302e6556dd
MonthHeader 年月与周号垂直居中对齐
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:36:23 +08:00
62924eff3e
FAB 固定在屏幕左下角,不再跟随 BottomCard 高度
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:29:25 +08:00
02730e54e8
实现缩放动画菜单和 Scrim 关闭
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:54:27 +08:00
5a7d1f1781
更新 KDoc: FAB 菜单切换视图描述
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:53:54 +08:00
a7bf59e42e
添加 FAB 浮动按钮和菜单状态
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:52:48 +08:00
37af18ad8d
实现缩放动画菜单和 Scrim 关闭
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:49:45 +08:00
ff3bd6629d
实现缩放动画菜单和 Scrim 关闭
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:46:43 +08:00
2b0bb7e1d8
移除 MonthHeader 点击切换年视图功能
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:41:33 +08:00
b877596e72
更新 CLAUDE.md: 修正版本号、补充新增组件和依赖
...
- compileSdk/targetSdk 36→37, Compose 1.10.3→1.11.0
- 新增 tyme4kt 农历库依赖
- 补充 YearGridView、ShiftPattern、CalendarUtils 说明
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:35:21 +08:00
bad536617d
年视图网格: 改用 spacedBy 统一行列间距,月份顶部对齐
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:49:38 +08:00
d9326668a4
年视图布局优化: 月份填满视图、加大字号、添加间距
...
- 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>
2026-05-18 10:42:56 +08:00
17146e2bc0
格式化: import 排序、长行换行、空行规范
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 10:10:59 +08:00
3bf05b5077
移除阿里云镜像源,改用默认 Maven Central/Google 仓库
...
阿里云镜像缺少 tyme4kt 的 iOS klib,导致 iOS 目标无法解析依赖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 09:16:03 +08:00
647823b66c
Merge pull request #1 from xunrua/main
...
重构日历折叠动画并修复折叠态下的多个交互问题
2026-05-17 09:02:52 +08:00
meyou
c95f118daf
DayCell 关闭默认 ripple,消除选中后残留的灰色状态层
...
clickable 默认 indication 会在 release 后慢慢淡出灰色波纹,
选中态视觉已由 reveal 圆形动画承担,关闭默认 indication 即可
让点击反馈立即结束,不留灰色残影。
2026-05-16 19:40:47 +08:00
meyou
275fc55c79
选中态动画从 250ms 缩短到 150ms 让圆环填充消失更利落
2026-05-16 19:37:00 +08:00
meyou
6618c1863a
排班在右侧时沿用法定调休样式:surface 底 + 彩色文字
...
默认布局(showLegalHoliday=false)下,右上角排班从实心胶囊改为
surface 背景圆 + 班=primary/休=error 彩色文字,与开启法定调休
时右上角角标视觉规范一致。左上角(showLegalHoliday=true)保持
实心胶囊样式不变,用于区分两类信息。
2026-05-16 19:32:44 +08:00
meyou
043bd9824b
新增法定调休开关,默认禁用,排班接管右上角
...
ViewModel 增加 showLegalHoliday 状态,默认 false。
关闭时:排班从左上角移到右上角,不显示法定调休角标。
开启时:回到旧布局,左上角=排班、右上角=法定调休。
DayCell 与各 Pager 透传新参数,预留后续接入设置页。
2026-05-16 19:29:06 +08:00
meyou
ecf4cf601e
新增个人轮班 MVP:左上角胶囊显示班/休
...
新增 ShiftPattern 数据模型,以锚点日期 + 循环序列描述周期性轮班,与法定调休完全独立。
默认配置 2026-05-15 起 [班,班,休,休] 4 天周期,DayCell 左上角渲染胶囊角标。
2026-05-16 19:12:18 +08:00
meyou
f63b57eef1
角标加 surface 背景咬开描边圆,今日未选中时去掉描边只留 primary 文字
...
角标(休/班)从只是叠在描边圆之上,改为自带 surface 圆背景:
覆盖身后那段弧,产生"咬开圆环"的视觉断点。
同时 TODAY 状态(今日未被选中)去掉描边圆,文字仍保持 primary 主色,
通过文字颜色标识今天,与选中其他日期时形成更清晰的层次。
2026-05-16 18:56:02 +08:00
meyou
71a3cbc62a
选中态:今天=实心填充,非今天=描边圆,角标置顶不再被遮挡
...
之前所有选中态都是实心圆,描边圆只用于"今天未选中"。
现改为:今天+选中=primaryContainer 实心填充,普通日期+选中=primary 描边圆,
今天未选中维持细描边。
角标加 zIndex(1f) 提到最上,padding 收紧到 top=1/end=2 紧贴右上角方形空白,
配合描边圆改造,休/班角标在选中态下不再被圆形覆盖。
2026-05-16 18:47:57 +08:00
meyou
aa223db519
年月视图切换时立即移除源视图,仅对目标视图播放缩放动画
...
之前月↔年切换使用交叉淡入:两层同时合成,源视图渐隐、目标视图渐显。
现改为单向过渡:先翻转 isYearView 让源视图立刻从合成中移除,
withFrameNanos 等一帧后再启动目标视图的 scale/alpha 动画,避免抖动。
2026-05-16 17:42:21 +08:00
meyou
c28eb8d0e5
节日改为只在当天显示,休/班改为右上角角标
...
之前法定假期的「春节休」之类文本占据了整段假期,把假期里出现
的节气(雨水、惊蛰等)和其他节日全部挤掉。现在拆成两条线:
- 主标注:按 农历节日 → 节气当天 → 公历节日 → 农历日期 的
优先级,仅在节日/节气当天展示节日名。
- 右上角角标:单独读取法定假期标志,调休「休」为 error 色,
调休「班」为 primary 色;非当月时整体降低不透明度。
DayCell 外层多包一层 Box 承载 aspectRatio,原内层保留圆形裁
剪与涟漪;角标放在外层 TopEnd,避免被 CircleShape 裁掉。
2026-05-16 17:34:53 +08:00
meyou
889a54db0e
修复折叠周视图跨月日期未置灰的问题
...
WeekPager 之前把 isCurrentMonth 硬编码成 true,导致折叠状态下
当前周里属于上/下个月的日期没有变灰,与展开月视图的灰显约定不
一致。改为按 selectedDate 的年月判定(与 MonthHeader 显示的
月份一致),保持折叠前后的视觉一致性。
2026-05-16 17:30:51 +08:00
meyou
b730edc1eb
修复首次启动切换年视图无动画问题
...
通过 withFrameNanos 在动画前预留一帧,让年视图先完成首次合成与
布局,避免 HorizontalPager + YearGridView 的初次合成开销吃掉动
画时间段。与之前的「常驻合成」方案相比,本次只调时序、不动渲染
结构,因此不会再触发年视图层在隐藏时拦截触摸事件的回归。
2026-05-16 17:27:39 +08:00
meyou
c096651e0f
Revert "修复首次启动切换年视图无动画的问题"
...
This reverts commit 216ebbf990555f8282371199b8d1cc4bb86d9b2e.
2026-05-16 17:02:45 +08:00
meyou
216ebbf990
修复首次启动切换年视图无动画的问题
...
始终组合年视图 HorizontalPager 层(通过 graphicsLayer.alpha=0 隐藏),
避免首次进入时 Pager 组合延迟导致动画首帧丢失。
2026-05-16 16:59:27 +08:00
meyou
142d0c235a
修复年视图布局和动画问题
...
- 年视图每个小月历添加星期行头部
- 日期列用 weight(1f) 对齐,去掉 CircleShape 裁剪
- 取消前一个动画 Job 防止快速点击时动画丢失
2026-05-16 16:49:10 +08:00
meyou
8dad07c0a0
年视图支持左右滑动切换年份
...
使用 HorizontalPager 包裹年视图,支持手势滑动切年。
‹ › 按钮改为 animateScrollToPage,与滑动行为一致。
2026-05-16 16:43:32 +08:00
meyou
502f1efc0a
Fix year view showing stale year: reset to selectedDate.year on enter
2026-05-16 16:39:58 +08:00
meyou
c996d026cc
Replace year view month cells with mini calendar grids
...
Each month in the 4x3 year grid now shows a compact calendar with
day numbers, matching the iOS Calendar year view style. Today is
highlighted with a filled circle. Selected month title uses primary color.
2026-05-16 16:35:56 +08:00
meyou
731a1bb6a1
Wire year view into CalendarMonthView, MonthHeader and ViewModel
...
- CalendarViewModel: year view state and animation methods
- CalendarMonthView: graphicsLayer zoom overlay, BottomCard hiding
- MonthHeader: toggle year view on click, "今天" button
2026-05-16 16:29:37 +08:00
meyou
995693cb5d
Add year view with Hero Zoom transition
...
- CalendarViewModel: add isYearView, yearViewProgress, yearViewYear state
with toggleYearView(), selectMonthFromYearView(), year navigation methods
- YearGridView: new 4x3 month grid with year navigation header
- MonthHeader: onClick now toggles year view, added "今天" button
- CalendarMonthView: overlay year view with graphicsLayer anchor-based
scale transition, hide BottomCard during year view
2026-05-16 16:29:17 +08:00
meyou
16b73c4373
Fix flash when expanding after navigating months in collapsed state
...
Sync CalendarPager's pagerState to selectedDate in CalendarMonthView
via LaunchedEffect(selectedDate), so the page is already correct when
CalendarPager re-enters composition during expand. Remove the now-
redundant LaunchedEffect(Unit) sync in CalendarPager.
2026-05-16 15:58:12 +08:00
meyou
b0b97650ec
Fix week number alignment: use Bottom + padding instead of alignByBaseline
...
alignByBaseline caused layout jumps during AnimatedContent transitions.
Switch to Bottom alignment with 2dp bottom padding on week number for
stable visual alignment with month text baseline.
2026-05-16 15:45:03 +08:00
meyou
888c4d03d3
Use baseline alignment for month text and week number
2026-05-16 15:39:38 +08:00
meyou
418b97baed
Fix week number baseline alignment and collapsed state today jump
...
- MonthHeader: align week number text baseline with month text (Bottom)
- WeekPager: scroll to selectedDate's week when it changes externally,
fixing the case where clicking "back to today" in collapsed state
didn't navigate the week pager to the current week
2026-05-16 15:32:26 +08:00
meyou
055738220c
Add holiday, festival and solar term annotations to DayCell
...
Replace plain lunar text with priority-based annotations:
legal holidays > lunar festivals > solar terms > solar festivals > lunar day.
Holiday/festival text uses error color to stand out from regular lunar text.
2026-05-16 15:22:18 +08:00
meyou
dfda6fa5a9
DayCell 增加农历日期显示
...
使用 tyme4kt 库在日期数字下方显示农历日名,初一显示月名。
2026-05-16 15:15:27 +08:00
meyou
c86cdd61b8
修复 BottomCard 深色模式适配和 DayCell 无障碍支持
2026-05-16 14:57:24 +08:00
meyou
b65856a4ae
点击月份标题跳转到今天
2026-05-16 14:54:35 +08:00
meyou
fcad070800
修复折叠态跨月周选中和展开闪跳问题
...
1. 展开同步逻辑移至 CalendarPager(LaunchedEffect(Unit)),减少闪帧
2. 跨月周根据滑动方向选中日期:
- 后退到跨月周:选较晚月份1号,留在当月
- 前进到跨月周:选该周周一,留在上个月
2026-05-16 13:38:34 +08:00
meyou
09e13e335c
Revert 跨月周选中逻辑的两个提交,重新设计
2026-05-16 13:28:29 +08:00
meyou
857cf88cb0
修复跨月周选中逻辑:根据滑动方向决定选中日期
...
后退到跨月周(如从5月滑到4月27-5月3):选中较晚月份1号,留在当月。
前进到跨月周(如从4月滑到4月27-5月3):选中该周周一,留在上个月。
2026-05-16 13:22:47 +08:00
meyou
104c5e5baa
修复折叠态跨月周选中上个月日期的问题
...
跨月周(如5月第一周周一是4月27日)改为选中下个月的1号,
避免月份标题和展开内容不一致。
2026-05-16 13:10:03 +08:00
meyou
e403c683f6
Sync CalendarPager to selectedDate month when expanding from week view
2026-05-16 12:24:12 +08:00
meyou
6a0ceaf8d3
Show anchor row background only after it reaches y=0
2026-05-16 11:29:13 +08:00
meyou
9544cb7526
Only show anchor row background during collapse, not on initial render
2026-05-16 11:24:34 +08:00
meyou
7c6c32486d
Only add background to anchor row during collapse
2026-05-16 11:18:09 +08:00
meyou
9a0c8771a1
Add row background color to prevent text bleed during collapse animation
2026-05-16 11:10:30 +08:00