1.7 KiB
1.7 KiB
主页诗词卡片骨架屏设计文档
问题描述
当前主页诗词卡片在点击加载下一条时会出现闪白现象,原因是:
poetryData.value = newPoetryData触发整个卡片重建- 重建过程中卡片内容短暂消失,显示白色背景
- 用户体验不佳,应该有平滑的过渡效果
解决方案
方案:骨架屏过渡(推荐)
在加载新数据时,保持卡片容器显示,使用骨架屏(Skeleton)代替实际内容,实现平滑过渡。
核心思路:
- 卡片容器始终存在,不随数据变化而销毁重建
- 每个区域(标题、诗句、原文、关键词、译文)独立控制加载状态
- 加载时使用骨架屏动画,加载完成后显示实际内容
- 避免整个卡片的闪白现象
技术实现:
- 修改
PoetryCard组件,添加骨架屏支持 - 使用
Shimmer效果或自定义骨架动画 - 保持卡片背景色在加载过程中不变
- 分区域加载,逐步显示内容
文件修改
1. home_part.dart
- 修改
PoetryCard组件 - 添加骨架屏 Widget
- 优化加载状态的显示逻辑
2. home_controller.dart(如有需要)
- 调整加载状态的管理
- 确保骨架屏在正确时机显示
设计要点
-
骨架屏样式
- 使用与卡片背景对比的颜色
- 添加脉冲动画效果
- 保持与内容区域相同的尺寸
-
过渡动画
- 骨架屏到实际内容的淡入淡出
- 避免突兀的切换
-
深色模式支持
- 骨架屏颜色适配深色/浅色模式
- 保持视觉一致性
预期效果
- 点击下一条时,卡片保持显示
- 各区域显示骨架屏动画
- 数据加载完成后,内容平滑过渡显示
- 无闪白现象,用户体验流畅