|
|
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|
|
|
|
|
import '../model/msg.dart';
|
|
|
import '../util/ToastUtil.dart';
|
|
|
+import '../util/clipboard_util.dart';
|
|
|
|
|
|
/// 聊天页面
|
|
|
class ChatPage extends StatefulWidget {
|
|
|
@@ -29,14 +30,8 @@ class ChatPageState extends State<ChatPage> {
|
|
|
/// 添加消息到消息列表中
|
|
|
void _addMsg2List(String msg, bool isMe) {
|
|
|
setState(() {
|
|
|
- String msgText;
|
|
|
- if (isMe) {
|
|
|
- msgText = "我:$msg";
|
|
|
- } else {
|
|
|
- msgText = "对方:$msg";
|
|
|
- }
|
|
|
_msgList.add(
|
|
|
- Msg(isMe: isMe, msg: msgText, createTime: DateTime.now().millisecond),
|
|
|
+ Msg(isMe: isMe, msg: msg, createTime: DateTime.now().millisecond),
|
|
|
);
|
|
|
});
|
|
|
Future.delayed(const Duration(milliseconds: 300), () {
|
|
|
@@ -115,7 +110,14 @@ class ChatPageState extends State<ChatPage> {
|
|
|
],
|
|
|
);
|
|
|
}
|
|
|
- return Container(padding: const EdgeInsets.all(8.0), child: content);
|
|
|
+ return GestureDetector(
|
|
|
+ onLongPress: () {
|
|
|
+ // 长按消息,复制文本到剪切板
|
|
|
+ ClipboardUtil.copyToClipboard(msg.msg);
|
|
|
+ ToastUtil.showToast("已复制到剪切板");
|
|
|
+ },
|
|
|
+ child: Container(padding: const EdgeInsets.all(8.0), child: content),
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
/// 构建头像
|
|
|
@@ -172,6 +174,13 @@ class ChatPageState extends State<ChatPage> {
|
|
|
Expanded(
|
|
|
flex: 1,
|
|
|
child: TextField(
|
|
|
+ // 设置按钮显示为发送
|
|
|
+ textInputAction: TextInputAction.send,
|
|
|
+ onSubmitted: (value) {
|
|
|
+ // 用户点击软键盘的发送按钮
|
|
|
+ var msg = _editingController.text;
|
|
|
+ _sendMsg(msg);
|
|
|
+ },
|
|
|
// 输入框焦点
|
|
|
focusNode: _inputFocusNode,
|
|
|
// 点击外部区域,关闭软键盘
|