From 7fa7152245371cfb2956569d81db77ced11ce5dc Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sun, 17 Sep 2023 20:07:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=A8=E6=88=B7=E9=A1=B5=E5=BC=82?= =?UTF-8?q?=E5=B8=B8&=E5=A4=B4=E5=83=8F=E6=B8=B2=E6=9F=93=E3=80=81?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=BB=BA=E8=AE=AE=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/member/controller.dart | 7 +-- lib/pages/member/view.dart | 76 +++++++++++++++------------ lib/pages/member/widgets/profile.dart | 2 +- lib/pages/search/controller.dart | 2 +- 4 files changed, 48 insertions(+), 39 deletions(-) diff --git a/lib/pages/member/controller.dart b/lib/pages/member/controller.dart index 4a19d9ca..0d40ec65 100644 --- a/lib/pages/member/controller.dart +++ b/lib/pages/member/controller.dart @@ -14,7 +14,7 @@ class MemberController extends GetxController { late int mid; Rx memberInfo = MemberInfoModel().obs; Map? userStat; - String? face; + RxString face = ''.obs; String? heroTag; Box userInfoCache = GStrorage.userInfo; late int ownerMid; @@ -30,7 +30,7 @@ class MemberController extends GetxController { mid = int.parse(Get.parameters['mid']!); userInfo = userInfoCache.get('userInfoCache'); ownerMid = userInfo != null ? userInfo.mid : -1; - face = Get.arguments['face'] ?? ''; + face.value = Get.arguments['face'] ?? ''; heroTag = Get.arguments['heroTag'] ?? ''; relationSearch(); } @@ -41,6 +41,7 @@ class MemberController extends GetxController { var res = await MemberHttp.memberInfo(mid: mid); if (res['status']) { memberInfo.value = res['data']; + face.value = res['data'].face; } return res; } @@ -118,7 +119,7 @@ class MemberController extends GetxController { ? '关注' : attribute.value == 2 ? '已关注' - : attribute.value == 2 + : attribute.value == 6 ? '已互粉' : '已拉黑'; } diff --git a/lib/pages/member/view.dart b/lib/pages/member/view.dart index 9cc1672a..a29bd545 100644 --- a/lib/pages/member/view.dart +++ b/lib/pages/member/view.dart @@ -8,6 +8,7 @@ import 'package:pilipala/common/widgets/network_img_layer.dart'; import 'package:pilipala/pages/member/archive/view.dart'; import 'package:pilipala/pages/member/dynamic/index.dart'; import 'package:pilipala/pages/member/index.dart'; +import 'package:pilipala/utils/utils.dart'; import 'widgets/profile.dart'; @@ -30,7 +31,8 @@ class _MemberPageState extends State @override void initState() { super.initState(); - heroTag = Get.arguments['heroTag']; + heroTag = + Get.arguments['heroTag'] ?? Utils.makeHeroTag(Get.parameters['mid']); _memberController = Get.put(MemberController(), tag: heroTag); _tabController = TabController(length: 3, vsync: this, initialIndex: 2); _futureBuilderFuture = _memberController.getInfo(); @@ -80,11 +82,13 @@ class _MemberPageState extends State children: [ Row( children: [ - NetworkImgLayer( - width: 35, - height: 35, - type: 'avatar', - src: _memberController.face ?? '', + Obx( + () => NetworkImgLayer( + width: 35, + height: 35, + type: 'avatar', + src: _memberController.face.value, + ), ), const SizedBox(width: 10), Obx( @@ -145,34 +149,38 @@ class _MemberPageState extends State flexibleSpace: FlexibleSpaceBar( background: Stack( children: [ - if (_memberController.face != null) - Positioned.fill( - bottom: 10, - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - fit: BoxFit.fitWidth, - image: NetworkImage(_memberController.face!), - alignment: Alignment.topCenter, - isAntiAlias: true, - ), - ), - foregroundDecoration: BoxDecoration( - gradient: LinearGradient( - colors: [ - Theme.of(context) - .colorScheme - .background - .withOpacity(0.44), - Theme.of(context).colorScheme.background, - ], - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - stops: const [0.0, 0.46], - ), - ), - ), - ), + Obx( + () => _memberController.face.value != '' + ? Positioned.fill( + bottom: 10, + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + fit: BoxFit.fitWidth, + image: NetworkImage( + _memberController.face.value), + alignment: Alignment.topCenter, + isAntiAlias: true, + ), + ), + foregroundDecoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + Theme.of(context) + .colorScheme + .background + .withOpacity(0.44), + Theme.of(context).colorScheme.background, + ], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + stops: const [0.0, 0.46], + ), + ), + ), + ) + : const SizedBox(), + ), Positioned( left: 0, right: 0, diff --git a/lib/pages/member/widgets/profile.dart b/lib/pages/member/widgets/profile.dart index 853fd8b3..22e88106 100644 --- a/lib/pages/member/widgets/profile.dart +++ b/lib/pages/member/widgets/profile.dart @@ -22,7 +22,7 @@ Widget profile(ctr, {loadingStatus = false}) { width: 90, height: 90, type: 'avatar', - src: !loadingStatus ? memberInfo.face : ctr.face, + src: !loadingStatus ? memberInfo.face : ctr.face.value, ), if (!loadingStatus && memberInfo.liveRoom != null && diff --git a/lib/pages/search/controller.dart b/lib/pages/search/controller.dart index 36d6a189..b95b048b 100644 --- a/lib/pages/search/controller.dart +++ b/lib/pages/search/controller.dart @@ -105,7 +105,7 @@ class SSearchController extends GetxController { Future querySearchSuggest(String value) async { var result = await SearchHttp.searchSuggest(term: value); if (result['status']) { - if (result['data'].isNotEmpty) { + if (result['data'] is SearchSuggestModel) { searchSuggestList.value = result['data'].tag; } }