diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index d4d9ea27..dc1dd54a 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -295,7 +295,7 @@ class _LiveRoomPageState extends State bottom: 125 + MediaQuery.paddingOf(context).bottom, child: SizedBox( height: 125, - child: _buildChatWidget, + child: _buildChatWidget(true), ), ), ), @@ -478,11 +478,11 @@ class _LiveRoomPageState extends State final GlobalKey chatKey = GlobalKey(); List get _buildBottomWidget => [ - Expanded(child: _buildChatWidget), + Expanded(child: _buildChatWidget()), _buildInputWidget, ]; - Widget get _buildChatWidget => Listener( + Widget _buildChatWidget([bool? isPP]) => Listener( onPointerDown: (_) { _node.unfocus(); }, @@ -490,6 +490,7 @@ class _LiveRoomPageState extends State padding: const EdgeInsets.symmetric(vertical: 16), child: LiveRoomChat( key: chatKey, + isPP: isPP, roomId: _roomId, liveRoomController: _liveRoomController, ), diff --git a/lib/pages/live_room/widgets/chat.dart b/lib/pages/live_room/widgets/chat.dart index 99c2cfd1..9c426e43 100644 --- a/lib/pages/live_room/widgets/chat.dart +++ b/lib/pages/live_room/widgets/chat.dart @@ -6,21 +6,18 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; -class LiveRoomChat extends StatefulWidget { - final int roomId; - final LiveRoomController liveRoomController; +class LiveRoomChat extends StatelessWidget { const LiveRoomChat({ super.key, required this.roomId, required this.liveRoomController, + this.isPP, }); - @override - State createState() => _LiveRoomChatState(); -} -class _LiveRoomChatState extends State { - bool get disableAutoScroll => - widget.liveRoomController.disableAutoScroll.value; + final int roomId; + final LiveRoomController liveRoomController; + final bool? isPP; + bool get disableAutoScroll => liveRoomController.disableAutoScroll.value; @override Widget build(BuildContext context) { @@ -29,9 +26,9 @@ class _LiveRoomChatState extends State { Obx( () => ListView.separated( padding: const EdgeInsets.all(0), - controller: widget.liveRoomController.scrollController, + controller: liveRoomController.scrollController, separatorBuilder: (context, index) => const SizedBox(height: 6), - itemCount: widget.liveRoomController.messages.length, + itemCount: liveRoomController.messages.length, itemBuilder: (context, index) { return Container( alignment: Alignment.centerLeft, @@ -39,25 +36,27 @@ class _LiveRoomChatState extends State { child: Container( padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), - decoration: const BoxDecoration( - color: Color(0x15FFFFFF), - borderRadius: BorderRadius.all(Radius.circular(18)), + decoration: BoxDecoration( + color: isPP == true + ? Colors.black.withOpacity(0.3) + : Color(0x15FFFFFF), + borderRadius: const BorderRadius.all(Radius.circular(18)), ), child: Text.rich( TextSpan( children: [ TextSpan( text: - '${widget.liveRoomController.messages[index]['name']}: ', - style: const TextStyle( - color: Color(0xFFAAAAAA), + '${liveRoomController.messages[index]['name']}: ', + style: TextStyle( + color: Colors.white.withOpacity(0.6), fontSize: 14, ), recognizer: TapGestureRecognizer() ..onTap = () { try { - dynamic uid = widget - .liveRoomController.messages[index]['uid']; + dynamic uid = + liveRoomController.messages[index]['uid']; Get.toNamed( '/member?mid=$uid', arguments: { @@ -70,7 +69,7 @@ class _LiveRoomChatState extends State { } }, ), - _buildMsg(widget.liveRoomController.messages[index]), + _buildMsg(liveRoomController.messages[index]), ], ), ), @@ -80,7 +79,7 @@ class _LiveRoomChatState extends State { ), ), Obx( - () => widget.liveRoomController.disableAutoScroll.value + () => liveRoomController.disableAutoScroll.value ? Positioned( right: 12, bottom: 0, @@ -91,8 +90,8 @@ class _LiveRoomChatState extends State { ), label: const Text('回到底部'), onPressed: () { - widget.liveRoomController.disableAutoScroll.value = false; - widget.liveRoomController.scrollToBottom(); + liveRoomController.disableAutoScroll.value = false; + liveRoomController.scrollToBottom(); }, ), )