From 103576f7ab92222d1fe711470312f23220f12d37 Mon Sep 17 00:00:00 2001 From: Jolie <412895109@qq.com> Date: Wed, 31 Dec 2025 21:11:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(live=5Froom):=20=E8=A7=A3=E5=86=B3=E7=9B=B4?= =?UTF-8?q?=E6=92=AD=E6=88=BF=E9=97=B4=E9=A1=B5=E9=9D=A2=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=97=B6=E5=B0=8F=E7=AA=97=E5=8F=A3=E6=98=BE=E7=A4=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 Assets.imagesUserAvatar 资源导入 - 修复页面关闭时 Get.back() 重复调用问题 - 添加延迟机制确保小窗口在页面关闭后正确显示 - 修复主播信息为空时的空指针异常 - 设置默认用户名和头像资源作为备选值 --- lib/pages/discover/live_room_page.dart | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/pages/discover/live_room_page.dart b/lib/pages/discover/live_room_page.dart index 7927790..48ac2bc 100644 --- a/lib/pages/discover/live_room_page.dart +++ b/lib/pages/discover/live_room_page.dart @@ -1,6 +1,7 @@ import 'package:dating_touchme_app/controller/discover/room_controller.dart'; import 'package:dating_touchme_app/controller/global.dart'; import 'package:dating_touchme_app/controller/overlay_controller.dart'; +import 'package:dating_touchme_app/generated/assets.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:tdesign_flutter/tdesign_flutter.dart'; @@ -241,8 +242,14 @@ class _LiveRoomPageState extends State { final roomController = Get.find(); roomController.chatMessages.clear(); } - _overlayController.show(); - Get.back(); + // 如果还没有执行 pop,手动调用 Get.back() + if (!didPop) { + Get.back(); + } + // 等待页面关闭后再显示小窗口,确保小窗口能正确显示 + Future.delayed(const Duration(milliseconds: 200), () { + _overlayController.show(); + }); }, child: Scaffold( resizeToAvoidBottomInset: false, @@ -281,8 +288,8 @@ class _LiveRoomPageState extends State { final detail = _roomController.rtcChannelDetail.value; final anchorInfo = detail?.anchorInfo; - final userName = anchorInfo!.nickName; - final avatarAsset = anchorInfo.profilePhoto; + final userName = anchorInfo?.nickName ?? '用户'; + final avatarAsset = anchorInfo?.profilePhoto ?? Assets.imagesUserAvatar; const popularityText = '0'; // TODO: 使用真实数据 return LiveRoomUserHeader( @@ -296,8 +303,11 @@ class _LiveRoomPageState extends State { final roomController = Get.find(); roomController.chatMessages.clear(); } - _overlayController.show(); Get.back(); + // 等待页面关闭后再显示小窗口,确保小窗口能正确显示 + Future.delayed(const Duration(milliseconds: 200), () { + _overlayController.show(); + }); }, ); }),