修复:首页视频预览bug
This commit is contained in:
parent
e86b001a27
commit
20d43b4ae4
@ -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 {
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user