Browse Source

fix(chat):修复消息发送后界面不更新的问题

- 在消息发送成功后调用update()方法强制刷新界面
- 添加点击消息区域收起键盘的功能- 调整消息列表构建逻辑,优化用户体验
ios
Jolie 4 months ago
parent
commit
9f769db64e
2 changed files with 9 additions and 1 deletions
  1. 1
      lib/controller/message/chat_controller.dart
  2. 9
      lib/pages/message/chat_page.dart

1
lib/controller/message/chat_controller.dart

@ -53,6 +53,7 @@ class ChatController extends GetxController {
if (message != null) { if (message != null) {
// //
messages.insert(0, message); messages.insert(0, message);
update();
return true; return true;
} }
return false; return false;

9
lib/pages/message/chat_page.dart

@ -49,6 +49,12 @@ class ChatPage extends StatelessWidget {
Expanded( Expanded(
child: Container( child: Container(
color: Color(0xffF5F5F5), color: Color(0xffF5F5F5),
child: GestureDetector(
onTap: () {
//
FocusManager.instance.primaryFocus?.unfocus();
},
behavior: HitTestBehavior.opaque,
child: ListView.builder( child: ListView.builder(
reverse: true, reverse: true,
padding: EdgeInsets.all(16.w), padding: EdgeInsets.all(16.w),
@ -56,7 +62,7 @@ class ChatPage extends StatelessWidget {
itemBuilder: (context, index) { itemBuilder: (context, index) {
final message = controller.messages[index]; final message = controller.messages[index];
final isSentByMe = message.direction == MessageDirection.SEND; final isSentByMe = message.direction == MessageDirection.SEND;
//
final previousMessage = index > 0 ? controller.messages[index - 1] : null; final previousMessage = index > 0 ? controller.messages[index - 1] : null;
return MessageItem( return MessageItem(
@ -67,6 +73,7 @@ class ChatPage extends StatelessWidget {
}, },
), ),
), ),
),
), ),
// 使 // 使
ChatInputBar( ChatInputBar(

Loading…
Cancel
Save