meyou fab0a5eba8
避免月/年视图切换时整棵树销毁:共存 + Modifier.alpha 控制
Perfetto trace 显示 Compose:onForgotten 耗时 600ms,根因是
if(!isYearView)/if(isYearView) 条件渲染导致整棵子树在切换时被销毁重建。

修复:
1. 月视图和年视图始终共存于组合树中
2. 通过 Modifier.alpha() 控制可见性和触摸事件分发
3. graphicsLayer 仅保留 scale 动画,alpha 移出到 Modifier 层
4. 简化 toggleYearView():移除 withFrameNanos/animJob.join() 的复杂协程逻辑

两个视图通过 yearViewProgress 驱动的交叉淡入淡出同步切换,
消除 onForgotten 的组件销毁开销。
2026-05-18 23:05:07 +08:00
2026-05-16 15:15:27 +08:00
2026-05-15 10:12:15 +08:00

YaYa

基于 Kotlin Multiplatform 与 Compose Multiplatform 的日历应用Android 和 iOS 共享 UI。

月视图与周视图之间支持流畅的折叠/展开过渡——拖拽切换弹簧动画自动吸附。无限分页ISO 8601 周起始Material 3。

构建

# Android
./gradlew :androidApp:assembleDebug

# iOS — 在 Xcode 中打开 iosApp/ 运行

技术栈

  • Kotlin 2.3 · Compose Multiplatform 1.10 · Material 3
  • kotlinx-datetime 处理所有日期逻辑
  • 双模块::sharedUI + 逻辑)· :androidApp(薄壳)
Description
No description provided
Readme 12 MiB
Languages
Kotlin 77.3%
Shell 18.7%
PowerShell 4%