Flutter高仿微信-第45篇-群聊-文本
创始人
2024-02-16 06:51:35
0

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。

 详情请查看

效果图:

实现代码:

 详情请参考Flutter高仿微信-第44篇-群聊, 这里只是群聊的文本实现代码。

//我的文本
Widget meTextWidget(){return Column(// Column被Expanded包裹起来,使其内部文本可自动换行crossAxisAlignment: CrossAxisAlignment.end,children: [Container(padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 10.0),decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(5.0),),color: Color(0xFF9EEA6A),),child: Text(widget.chatBean.content??"",textAlign: TextAlign.left,style: TextStyle(color: Colors.black, fontSize: 20.0),),)],);
}

//朋友的文本
Widget toTextWidget(){return Column(crossAxisAlignment: CrossAxisAlignment.start,children: [Container(padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 10.0),decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(5.0),),color: Color(0xFFEDEDED)),child: Text(widget.chatBean.content??"",textAlign: TextAlign.left,style: TextStyle(color: Colors.black, fontSize: 20.0),),)],);
}

//定义发送文本事件的处理函数
void _handleSubmitted(String text) async {if (text.length > 0) {bool isNetwork = await CommonNetwork.isNetwork();if(!isNetwork) {CommonUtils.showNetworkError(context);return;}int contentType = CommonUtils.CHAT_CONTENT_TYPE_TEXT;String addTime = WnDateUtils.getCurrentTime();String messageId = UUID.getUUID();ChatSendBean chatSendBean = ChatSendBean();chatSendBean.contentType = contentType;chatSendBean.content = text;chatSendBean.addTime = addTime;chatSendBean.second = 0;chatSendBean.messageId = messageId;chatSendBean.fromAccount = SpUtils.getAccount();String message = jsonEncode(chatSendBean);controller.clear(); //清空输入框GroupChatBean groupChatBean = GroupChatBean(account: widget.account, groupId: widget.toGroupId, content: text, contentType: contentType, addTime: addTime, messageId: messageId, localMediaUrl: "", serverMediaUrl: "", second: 0);//状态变更,向聊天记录中插入新记录setState(() {hideAddIcon = false;hideSend = true;items.add(groupChatBean);});await GroupChatRepository.getInstance().insertGroupChat(groupChatBean);_sendMessage(message);jumpToBottom(100);}
}

//发送消息
_sendMessage(var message){int id = DateTime.now().millisecondsSinceEpoch;String toJid = "${widget.toGroupId}@conference.wangning";XmppManager.getInstance().sendGroupMessageWithType(toJid, message, "${id}", id);Map result = HashMap();eventBus.emit(BaseEvent(BaseEvent.TYPE_NEW_MESSAGE, result: result));
}

相关内容

热门资讯

霍州法院高效调解技术服务合同纠... 本报讯(通讯员李兵平)“多亏法官和调解员耐心调解,既化解了纠纷,又督促了履行……”近日,霍州市人民法...
安全用工促发展,依法合规筑平安... 2025年12月18日下午,红谊共建“守护生命,安全在身边”公共安全教育与能力提升项目第四场专题培训...
合并调解 近日,忻州市忻府区人民法院成功化解了2起涉及四川、扬州企业的货款纠纷。 被告拖欠2家企业货款累计达5...
男子欲行凶被扑倒受伤,反索赔1... 上海市宝山区人民法院12月22日披露一起案件: 2023年10月,邱先生父亲在自家店铺门口与楚先生发...
有人网上传播快手涉黄视频,律师... 12月22日晚,多名网民向极目新闻记者反映,快手平台部分直播间出现大量色情内容。23日早上,快手工作...
河南推出13条生育支持政策措施 鼓励用人单位采取弹性工作时间、居家办公等方式解决职工育儿需求,新建居住区需要同步交付托育服务设施,已...
有人网上传播快手涉黄视频,律师... 极目新闻记者 郭奕 12月22日晚,多名网民向极目新闻记者反映,快手平台部分直播间出现大量色情内容。...
新修订的《内蒙古自治区未成年人... 人民网呼和浩特12月23日电 (记者 张聿修)记者从内蒙古自治区政府新闻办召开的“新修订的《内蒙古自...