修复:首页视频预览bug

This commit is contained in:
ivan 2026-03-29 20:10:12 +08:00
parent e86b001a27
commit 20d43b4ae4
2 changed files with 24 additions and 3 deletions

View File

@ -14,6 +14,7 @@ import '../../core/theme/app_spacing.dart';
import '../../core/theme/app_typography.dart';
import '../../core/user/account_refresh.dart';
import '../../core/user/user_state.dart';
import '../../features/home/home_playback_resume.dart';
import '../../features/home/models/task_item.dart';
import '../../shared/widgets/top_nav_bar.dart';
@ -66,6 +67,13 @@ class _GenerateVideoScreenState extends State<GenerateVideoScreen> {
});
}
@override
void dispose() {
// 从本页 pop(含关闭相册后再返回首页)时,底层首页需重新触发可见性;仅 [RouteAware.didPopNext] 有时序不足
homePlaybackResumeNonce.value++;
super.dispose();
}
/// Click flow per docs/generate_video.md: tap Generate Video -> image picker
/// (camera or gallery) -> after image selected -> proceed to API.
Future<void> _onGenerateButtonTap() async {

View File

@ -42,13 +42,26 @@ class _HomeScreenState extends State<HomeScreen> {
final Map<int, double> _cardVisibleFraction = {};
bool _visibilityReconcileScheduled = false;
/// IndexedStack 切回首页或 [homePlaybackResumeNonce] 递增后,立即让 [VisibilityDetector] 重新计算
/// IndexedStack 切回首页或 [homePlaybackResumeNonce] 递增后,让 [VisibilityDetector] 重新计算。
/// 单次 [notifyNow] 在「Modal 收起 / 子路由 pop」后首帧常过早,与 My Gallery 一致采用多帧 + 短延迟。
void _scheduleVisibilityRefresh() {
if (!widget.isActive) return;
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!mounted || !widget.isActive) return;
void notify() {
if (!mounted || !widget.isActive) return;
VisibilityDetectorController.instance.notifyNow();
}
WidgetsBinding.instance.addPostFrameCallback((_) {
notify();
WidgetsBinding.instance.addPostFrameCallback((_) {
notify();
WidgetsBinding.instance.addPostFrameCallback((_) {
notify();
});
});
});
Future<void>.delayed(const Duration(milliseconds: 80), notify);
Future<void>.delayed(const Duration(milliseconds: 220), notify);
}
@override