From 77ec78e3feba43236e5aa4207ff7ca0bc3d68a76 Mon Sep 17 00:00:00 2001 From: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com> Date: Wed, 15 Oct 2025 21:13:56 +0800 Subject: [PATCH] opt: singleton FollowTypeController (#1578) --- lib/pages/fan/view.dart | 16 ++++++++-------- lib/pages/follow_type/follow_same/view.dart | 8 ++++---- lib/pages/follow_type/followed/view.dart | 8 ++++---- lib/pages/follow_type/view.dart | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/pages/fan/view.dart b/lib/pages/fan/view.dart index 2a598ff0..5f4b3dbd 100644 --- a/lib/pages/fan/view.dart +++ b/lib/pages/fan/view.dart @@ -11,11 +11,11 @@ import 'package:get/get.dart'; class FansPage extends StatefulWidget { const FansPage({ super.key, - this.showName, + this.showName = true, this.onSelect, }); - final bool? showName; + final bool showName; final ValueChanged? onSelect; @override @@ -25,15 +25,14 @@ class FansPage extends StatefulWidget { class _FansPageState extends FollowTypePageState { @override late final FansController controller = Get.put( - FansController(widget.showName ?? true), - tag: Utils.generateRandomString(8), + FansController(widget.showName), + tag: Get.parameters['mid'], ); late final flag = widget.onSelect == null && controller.isOwner; @override - PreferredSizeWidget? get appBar => widget.showName == false - ? null - : AppBar( + PreferredSizeWidget? get appBar => widget.showName + ? AppBar( title: controller.isOwner ? const Text('我的粉丝') : Obx(() { @@ -41,7 +40,8 @@ class _FansPageState extends FollowTypePageState { if (name != null) return Text('$name的粉丝'); return const SizedBox.shrink(); }), - ); + ) + : null; @override Widget buildItem(int index, FollowItemModel item) { diff --git a/lib/pages/follow_type/follow_same/view.dart b/lib/pages/follow_type/follow_same/view.dart index 4a296509..bc6b9c5a 100644 --- a/lib/pages/follow_type/follow_same/view.dart +++ b/lib/pages/follow_type/follow_same/view.dart @@ -1,6 +1,6 @@ import 'package:PiliPlus/pages/follow_type/follow_same/controller.dart'; import 'package:PiliPlus/pages/follow_type/view.dart'; -import 'package:PiliPlus/utils/utils.dart'; +import 'package:PiliPlus/utils/extension.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -13,9 +13,9 @@ class FollowSamePage extends StatefulWidget { class _FollowSamePageState extends FollowTypePageState { @override - final controller = Get.put( - FollowSameController(), - tag: Utils.generateRandomString(8), + final controller = Get.putOrFind( + FollowSameController.new, + tag: Get.parameters['mid'], ); @override diff --git a/lib/pages/follow_type/followed/view.dart b/lib/pages/follow_type/followed/view.dart index 88853ace..68b9841f 100644 --- a/lib/pages/follow_type/followed/view.dart +++ b/lib/pages/follow_type/followed/view.dart @@ -1,6 +1,6 @@ import 'package:PiliPlus/pages/follow_type/followed/controller.dart'; import 'package:PiliPlus/pages/follow_type/view.dart'; -import 'package:PiliPlus/utils/utils.dart'; +import 'package:PiliPlus/utils/extension.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -13,9 +13,9 @@ class FollowedPage extends StatefulWidget { class _FollowedPageState extends FollowTypePageState { @override - final controller = Get.put( - FollowedController(), - tag: Utils.generateRandomString(8), + final controller = Get.putOrFind( + FollowedController.new, + tag: Get.parameters['mid'], ); @override diff --git a/lib/pages/follow_type/view.dart b/lib/pages/follow_type/view.dart index f42f9592..c73dedb0 100644 --- a/lib/pages/follow_type/view.dart +++ b/lib/pages/follow_type/view.dart @@ -25,7 +25,7 @@ abstract class FollowTypePageState extends State { onRefresh: controller.onRefresh, child: CustomScrollView( physics: const AlwaysScrollableScrollPhysics(), - controller: controller.scrollController, + // controller: controller.scrollController, slivers: [ ViewSliverSafeArea( sliver: Obx(