From 5b1ec83a344d9ae1e6cdc4747578e3acf85344c5 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Thu, 9 Jan 2025 11:57:54 +0800 Subject: [PATCH] fix: up panel Signed-off-by: bggRGjQaUbCoE --- lib/pages/dynamics/controller.dart | 3 +++ lib/pages/dynamics/widgets/up_panel.dart | 21 ++++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/pages/dynamics/controller.dart b/lib/pages/dynamics/controller.dart index 2a00dfa5..e1b2c0a0 100644 --- a/lib/pages/dynamics/controller.dart +++ b/lib/pages/dynamics/controller.dart @@ -39,6 +39,9 @@ class DynamicsController extends GetxController int allFollowedUpsPage = 1; int allFollowedUpsTotal = 0; + late int currentMid = -1; + late bool showLiveItems = false; + @override void onInit() { super.onInit(); diff --git a/lib/pages/dynamics/widgets/up_panel.dart b/lib/pages/dynamics/widgets/up_panel.dart index 186d01f6..9157a09d 100644 --- a/lib/pages/dynamics/widgets/up_panel.dart +++ b/lib/pages/dynamics/widgets/up_panel.dart @@ -20,13 +20,11 @@ class UpPanel extends StatefulWidget { } class _UpPanelState extends State { - int currentMid = -1; List get upList => widget.dynamicsController.upData.value.upList ?? []; List get liveList => widget.dynamicsController.upData.value.liveUsers?.items ?? []; - bool _showLiveItems = false; @override Widget build(BuildContext context) { @@ -53,17 +51,20 @@ class _UpPanelState extends State { fontSize: 13, ), semanticsLabel: - '${_showLiveItems ? '展开' : '收起'}直播中的${liveList.length}个Up', + '${widget.dynamicsController.showLiveItems ? '展开' : '收起'}直播中的${liveList.length}个Up', ), Icon( - _showLiveItems ? Icons.expand_less : Icons.expand_more, + widget.dynamicsController.showLiveItems + ? Icons.expand_less + : Icons.expand_more, size: 12, ), ], ), onPressed: () { setState(() { - _showLiveItems = !_showLiveItems; + widget.dynamicsController.showLiveItems = + !widget.dynamicsController.showLiveItems; }); }, ), @@ -81,7 +82,8 @@ class _UpPanelState extends State { ), delegate: SliverChildListDelegate( [ - if (_showLiveItems && liveList.isNotEmpty) ...[ + if (widget.dynamicsController.showLiveItems && + liveList.isNotEmpty) ...[ for (int i = 0; i < liveList.length; i++) ...[ upItemBuild(liveList[i], i) ], @@ -109,12 +111,13 @@ class _UpPanelState extends State { } Widget upItemBuild(data, i) { - bool isCurrent = currentMid == data.mid || currentMid == -1; + bool isCurrent = widget.dynamicsController.currentMid == data.mid || + widget.dynamicsController.currentMid == -1; return InkWell( onTap: () { feedBack(); if (data.type == 'up') { - currentMid = data.mid; + widget.dynamicsController.currentMid = data.mid; // dynamicsController.mid.value = data.mid; widget.dynamicsController ..upInfo.value = data @@ -218,7 +221,7 @@ class _UpPanelState extends State { softWrap: true, textAlign: TextAlign.center, style: TextStyle( - color: currentMid == data.mid + color: widget.dynamicsController.currentMid == data.mid ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.outline, height: 1.1,