对话页面新增,实现最最基础的部分

This commit is contained in:
2026-03-12 01:58:11 +08:00
parent 52beb51a54
commit 1027ce64d2
8 changed files with 550 additions and 36 deletions

View File

@@ -0,0 +1,15 @@
import 'package:flutter/material.dart';
import 'index.dart';
void main() => runApp(const MyChatTestApp());
class MyChatTestApp extends StatelessWidget {
const MyChatTestApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const ChatPage(),
);
}
}

44
lib/pages/chat/index.dart Normal file
View File

@@ -0,0 +1,44 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_chat_core/flutter_chat_core.dart';
import 'package:flutter_chat_ui/flutter_chat_ui.dart';
class ChatPage extends StatefulWidget {
const ChatPage({super.key});
@override
State<ChatPage> createState() => _ChatPageState();
}
class _ChatPageState extends State<ChatPage> {
final _chatController = InMemoryChatController();
@override
void dispose() {
_chatController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Chat(
chatController: _chatController,
currentUserId: 'user1',
onMessageSend: (text) {
_chatController.insertMessage(
TextMessage(
// Better to use UUID or similar for the ID - IDs must be unique
id: '${Random().nextInt(1000) + 1}',
authorId: 'user1',
createdAt: DateTime.now().toUtc(),
text: text,
),
);
},
resolveUser: (UserID id) async {
return User(id: id, name: 'John Doe');
},
),
);
}
}