From f6bfbc3ed62fada943cfa749be39265e57bf67e3 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Fri, 28 Feb 2025 20:20:39 +0800 Subject: [PATCH] mod: video sheet panel Signed-off-by: bggRGjQaUbCoE --- lib/common/widgets/list_sheet.dart | 28 +++++++++++-------- .../detail/member/horizontal_member_page.dart | 2 ++ lib/pages/video/detail/widgets/ai_detail.dart | 2 ++ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/lib/common/widgets/list_sheet.dart b/lib/common/widgets/list_sheet.dart index c24361ca..50ac3274 100644 --- a/lib/common/widgets/list_sheet.dart +++ b/lib/common/widgets/list_sheet.dart @@ -114,15 +114,6 @@ class _ListSheetContentState extends State @override void initState() { super.initState(); - if (GStorage.collapsibleVideoPage) { - WidgetsBinding.instance.addPostFrameCallback((_) { - if (mounted) { - setState(() { - _isInit = false; - }); - } - }); - } if (_isList) { _indexStream ??= StreamController.broadcast(); _ctr = TabController( @@ -149,9 +140,22 @@ class _ListSheetContentState extends State }(); } WidgetsBinding.instance.addPostFrameCallback((_) { - try { - itemScrollController[_index].jumpTo(index: currentIndex); - } catch (_) {} + if (GStorage.collapsibleVideoPage) { + if (mounted) { + setState(() { + _isInit = false; + }); + WidgetsBinding.instance.addPostFrameCallback((_) { + try { + itemScrollController[_index].jumpTo(index: currentIndex); + } catch (_) {} + }); + } + } else { + try { + itemScrollController[_index].jumpTo(index: currentIndex); + } catch (_) {} + } }); } diff --git a/lib/pages/video/detail/member/horizontal_member_page.dart b/lib/pages/video/detail/member/horizontal_member_page.dart index a0f598d3..90078383 100644 --- a/lib/pages/video/detail/member/horizontal_member_page.dart +++ b/lib/pages/video/detail/member/horizontal_member_page.dart @@ -160,6 +160,8 @@ class _HorizontalMemberPageState extends State { Success() => Material( color: Colors.transparent, child: CustomScrollView( + controller: ScrollController(), + physics: const AlwaysScrollableScrollPhysics(), slivers: [ _buildSliverHeader, SliverPadding( diff --git a/lib/pages/video/detail/widgets/ai_detail.dart b/lib/pages/video/detail/widgets/ai_detail.dart index 00062ac3..d287a113 100644 --- a/lib/pages/video/detail/widgets/ai_detail.dart +++ b/lib/pages/video/detail/widgets/ai_detail.dart @@ -42,6 +42,8 @@ class AiDetail extends StatelessWidget { ), Expanded( child: SingleChildScrollView( + controller: ScrollController(), + physics: const AlwaysScrollableScrollPhysics(), child: Column( children: [ if (modelResult.summary?.isNotEmpty == true) ...[