导入了get依赖,需要使用的请自行导入依赖
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class ChatController extends GetxController {
// 集合信息
RxList<ChatModel> chatList = <ChatModel>[].obs;
add(message, direction) {
chatList.add(ChatModel(message, direction));
update();
print(chatList.toJson()); // 打印结果查看是否添加成功
}
void _initList() {
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
chatList.add(ChatModel('你好', 0));
chatList.add(ChatModel('你好', 1));
}
}
class ChatModel {
ChatModel(this.message, this.direction);
var message; // 发送信息
var direction; // 0l : 1r
}
// ignore: must_be_immutable
class ChatView extends GetWidget<ChatController> {
var content;
final fieldText = TextEditingController();
ChatView({super.key});
ChatController chatController = Get.put(ChatController());
@override
Widget build(BuildContext context) {
chatController._initList();
return Scaffold(
appBar: AppBar(
title: const Text('chatBot'),
),
body: Obx(
() => Column(children: <Widget>[
Expanded(
child: ListView.builder(
itemCount: chatController.chatList.length,
itemBuilder: (BuildContext context, int index) {
return SizedBox(
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment:
chatController.chatList[index].direction == 0
? CrossAxisAlignment.start
: CrossAxisAlignment.end,
children: [Text(chatController.chatList[index].message)],
),
));
},
)),
Row(
children: <Widget>[
Expanded(
flex: 2,
child: TextField(
controller: fieldText,
onChanged: (message) {
// 绑定文本框改变事件
content = message;
},
),
),
Expanded(
flex: 1,
child: ElevatedButton(
onPressed: () {
chatController.add(content, 1);
fieldText.clear();
},
child: const Text('发送')))
],
)
]),
));
}
}