Browse Source

feat(message): 更新消息页面并优化图片展示逻辑

- 在获取会话列表后添加发送文本消息功能
- 移除图像项中的网络缩略图显示逻辑
- 修改图像项优先显示本地路径图片- 移除图像加载进度构建器- 调整消息页面Tab内容区域布局结构
- 移除不必要的日志打印语句
- 导入retrofit/http包用于图像项组件
ios
Jolie 4 months ago
parent
commit
8c84d55e51
3 changed files with 14 additions and 21 deletions
  1. 2
      lib/controller/message/conversation_controller.dart
  2. 20
      lib/pages/message/message_page.dart
  3. 13
      lib/widget/message/image_item.dart

2
lib/controller/message/conversation_controller.dart

@ -30,7 +30,7 @@ class ConversationController extends GetxController {
final List<EMConversation> convList = await IMManager.instance.getConversations();
//
conversations.value = convList;
await IMManager.instance.sendTextMessage('你好啊啊', '1114267797208305664');
// 使GetX日志系统
if (Get.isLogEnable) {
Get.log('Loaded ${convList.length} conversations');

20
lib/pages/message/message_page.dart

@ -127,17 +127,15 @@ class _MessagePageState extends State<MessagePage> with AutomaticKeepAliveClient
// Tab内容区域
Widget _buildTabContent() {
return Expanded(
child: TabBarView(
controller: _tabController,
physics: const NeverScrollableScrollPhysics(), // Tab页手势滚动
children: const [
// Tab
ConversationTab(),
// Tab
FriendTab(),
],
),
return TabBarView(
controller: _tabController,
physics: const NeverScrollableScrollPhysics(), // Tab页手势滚动
children: const [
// Tab
ConversationTab(),
// Tab
FriendTab(),
],
);
}

13
lib/widget/message/image_item.dart

@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:im_flutter_sdk/im_flutter_sdk.dart';
import 'package:retrofit/http.dart';
class ImageItem extends StatelessWidget {
final EMImageMessageBody imageBody;
@ -102,7 +103,6 @@ class ImageItem extends StatelessWidget {
double maxHeight = 200.w;
double width = maxWidth;
double height = maxHeight;
Get.log(imageBody.thumbnailLocalPath ?? '');
//
if (imageBody.width != null && imageBody.width! > 0 &&
imageBody.height != null && imageBody.height! > 0) {
@ -117,18 +117,13 @@ class ImageItem extends StatelessWidget {
width = maxHeight * aspectRatio;
}
}
//
if (imageBody.thumbnailRemotePath != null && imageBody.thumbnailRemotePath!.isNotEmpty) {
return Image.network(
imageBody.thumbnailRemotePath!,
if (imageBody.localPath != null && imageBody.localPath!.isNotEmpty) {
return Image.file(
File(imageBody.localPath),
width: width,
height: height,
fit: BoxFit.cover,
loadingBuilder: (context, child, loadingProgress) {
if (loadingProgress == null) return child;
return _buildLoadingContainer(width, height);
},
errorBuilder: (context, error, stackTrace) {
return _buildErrorContainer(width, height);
},

Loading…
Cancel
Save