Flutter聊天页面设计插件flutter_chat_page_design的使用

发布于 1周前 作者 h691938207 来自 Flutter

Flutter聊天页面设计插件flutter_chat_page_design的使用

使用flutter_chat_page_design可以轻松创建聊天页面设计,只需传递消息列表即可。

特性

  • 聊天气泡设计。
  • 可以更改发送者和接收者的背景色和文本颜色。
  • 启用或禁用按日期分组。
  • 其他功能正在开发中。

开始使用

安装

flutter pub add flutter_chat_page_design

导入

import 'package:flutter_chat_page_design/flutter_chat.dart';

使用方法

你可以在示例应用中查看完整的实现。以下是一个简单的示例:

// 导入必要的包
import 'package:flutter/material.dart';
import 'package:flutter_chat_page_design/flutter_chat.dart';

// 定义一个消息列表
final List<ChatMessage> chatList = [
  ChatMessage(senderId: "user1", text: "Hello!"),
  ChatMessage(senderId: "user2", text: "Hi there!"),
  // 更多消息...
];

// 创建聊天页面
class ChatPage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("聊天页面"),
      ),
      body: ChatListView(
        chatList: chatList,
        isDategroup: true, // 是否按日期分组
        isReverse: true, // 消息列表是否倒序排列
        gropByTextsize: 12, // 分组文字大小
        bubbleBorder: 15, // 气泡边框大小
        senderBgColor: Colors.red, // 发送者背景色
        receiverBgColor: Colors.green, // 接收者背景色
        senderTextColor: Colors.yellow, // 发送者文本颜色
        receiverTextColor: Colors.purple, // 接收者文本颜色
      ),
    );
  }
}

示例代码

以下是完整的示例代码,展示了如何在应用中使用flutter_chat_page_design

import 'package:flutter/material.dart';
import 'package:flutter_chat_page_design/flutter_chat.dart';

// 定义一个消息类
class ChatMessage {
  final String senderId;
  final String text;

  ChatMessage({required this.senderId, required this.text});
}

// 创建聊天页面
class ChatPage extends StatelessWidget {
  final List<ChatMessage> chatList = [
    ChatMessage(senderId: "user1", text: "Hello!"),
    ChatMessage(senderId: "user2", text: "Hi there!"),
    // 更多消息...
  ];

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("聊天页面"),
      ),
      body: ChatListView(
        chatList: chatList,
        isDategroup: true, // 是否按日期分组
        isReverse: true, // 消息列表是否倒序排列
        gropByTextsize: 12, // 分组文字大小
        bubbleBorder: 15, // 气泡边框大小
        senderBgColor: Colors.red, // 发送者背景色
        receiverBgColor: Colors.green, // 接收者背景色
        senderTextColor: Colors.yellow, // 发送者文本颜色
        receiverTextColor: Colors.purple, // 接收者文本颜色
      ),
    );
  }
}

// 主应用入口
void main() {
  runApp(MaterialApp(
    title: '聊天页面',
    home: ChatPage(),
  ));
}

更多关于Flutter聊天页面设计插件flutter_chat_page_design的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter聊天页面设计插件flutter_chat_page_design的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 flutter_chat_page_design 插件来设计 Flutter 聊天页面的示例代码。这个插件提供了一些预定义的组件和布局,可以帮助你快速搭建一个功能齐全的聊天界面。

首先,确保你已经在 pubspec.yaml 文件中添加了 flutter_chat_page_design 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_chat_page_design: ^最新版本号  # 请替换为最新的版本号

然后,运行 flutter pub get 来获取依赖。

接下来是一个简单的示例代码,展示如何使用 flutter_chat_page_design 插件来创建一个聊天页面:

import 'package:flutter/material.dart';
import 'package:flutter_chat_page_design/flutter_chat_page_design.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Chat Page Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: ChatPageExample(),
    );
  }
}

class ChatPageExample extends StatefulWidget {
  @override
  _ChatPageExampleState createState() => _ChatPageExampleState();
}

class _ChatPageExampleState extends State<ChatPageExample> {
  final List<ChatMessage> messages = [
    ChatMessage(
      userId: 'user1',
      avatar: 'assets/avatar1.png', // 请确保你有这个图片资源
      name: 'Alice',
      time: DateTime.now().subtract(Duration(minutes: 5)),
      content: 'Hello, how are you?',
      type: MessageType.text,
    ),
    ChatMessage(
      userId: 'user2',
      avatar: 'assets/avatar2.png', // 请确保你有这个图片资源
      name: 'Bob',
      time: DateTime.now().subtract(Duration(minutes: 3)),
      content: 'I am good, thanks. How about you?',
      type: MessageType.text,
    ),
    // 可以继续添加更多消息
  ];

  final TextEditingController _controller = TextEditingController();

  void _sendMessage() {
    if (_controller.text.isNotEmpty) {
      setState(() {
        messages.add(ChatMessage(
          userId: 'user1', // 根据当前用户ID调整
          avatar: 'assets/avatar1.png', // 用户头像
          name: 'Alice', // 用户名称
          time: DateTime.now(),
          content: _controller.text,
          type: MessageType.text,
        ));
        _controller.clear();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat Page'),
      ),
      body: ChatPage(
        messages: messages,
        inputBar: InputBar(
          controller: _controller,
          sendButtonPressed: _sendMessage,
          inputDecoration: InputDecoration(
            border: OutlineInputBorder(),
            hintText: 'Type a message...',
          ),
        ),
        userAvatar: 'assets/avatar1.png', // 当前用户头像
        userName: 'Alice', // 当前用户名称
      ),
    );
  }
}

在这个示例中:

  1. ChatPageExample 是一个有状态的 widget,它维护了一个消息列表 messages
  2. ChatMessage 是一个简单的数据类,包含了消息的发送者 ID、头像、名称、时间、内容和消息类型。
  3. _sendMessage 方法用于发送消息,并将新消息添加到 messages 列表中。
  4. ChatPageflutter_chat_page_design 插件提供的组件,用于显示聊天页面。它接收消息列表、输入框和当前用户信息作为参数。
  5. InputBar 是用于输入消息的底部栏,当点击发送按钮时,会调用 _sendMessage 方法。

请确保你有适当的图片资源(例如 avatar1.pngavatar2.png)放在项目的 assets 文件夹中,并在 pubspec.yaml 中声明这些资源。

这个示例代码展示了一个基本的聊天页面设计,你可以根据需要进一步扩展和自定义,例如添加图片消息、视频消息、表情符号等功能。

回到顶部