Flutter聊天界面插件chatty_widget的使用

Flutter聊天界面插件chatty_widget的使用

chatty_widget

一个在点击事件时显示消息的Flutter小部件。

安装

在您的pubspec.yaml文件中添加以下依赖项:

dependencies:
  chatty_widget: LATEST_VERSION_NUMBER

使用时,导入该包:

import 'package:chatty_widget/chatty_widget.dart';

使用示例

以下是一个完整的示例代码,展示了如何使用chatty_widget来创建带有聊天框的小部件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.orange,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int count = 0;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chatty Widget 示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 第一行示例
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                // 顶部聊天框示例
                ChattyWidget(
                  child: Container(
                      width: 100,
                      height: 50,
                      color: Colors.yellow,
                      child: Center(child: Text('容器'))),
                  text: '这里是来自顶部的聊天框',
                  textBoxColor: Colors.green,
                  chatBoxLocation: BoxLocation.Top,
                ),
                // 底部带边框的聊天框示例
                ChattyWidget(
                  child: Text('仅文本'),
                  text: '这里是带有边框的聊天框',
                  textBoxColor: Colors.white,
                  chatBoxStrokeColor: Colors.black,
                  chatBoxStrokeWidth: 3.0,
                  chatBoxLocation: BoxLocation.Bottom,
                ),
                // 顶部黑色聊天框示例
                ChattyWidget(
                  child: Icon(Icons.anchor),
                  text: '这里是来自顶部的聊天框',
                  textStyle: TextStyle(color: Colors.white),
                  textBoxColor: Colors.black,
                  chatBoxLocation: BoxLocation.Top,
                  chatBoxWidth: 100,
                ),
              ],
            ),
            const SizedBox(height: 80), // 添加间距
            // 第二行示例
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                Text(count.toString()), // 显示计数
                // 增加计数的聊天框
                ChattyWidget(
                  child: Icon(Icons.add),
                  text: '这将增加计数',
                  textStyle: TextStyle(color: Colors.white),
                  textBoxColor: Colors.black,
                  chatBoxLocation: BoxLocation.Top,
                  chatBoxWidth: 100,
                  onTap: () {
                    setState(() {
                      count++;
                    });
                  },
                ),
                // 减少计数的聊天框
                ChattyWidget(
                  child: Icon(Icons.remove),
                  text: '这将减少计数',
                  textStyle: TextStyle(color: Colors.white),
                  textBoxColor: Colors.black,
                  chatBoxLocation: BoxLocation.Top,
                  chatBoxWidth: 100,
                  onTap: () {
                    setState(() {
                      count--;
                    });
                  },
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


chatty_widget 是一个用于构建聊天界面的Flutter插件。它提供了丰富的功能,可以帮助开发者快速构建一个功能齐全的聊天界面。以下是如何使用 chatty_widget 的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 chatty_widget 依赖:

dependencies:
  flutter:
    sdk: flutter
  chatty_widget: ^latest_version

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

2. 导入包

在你的Dart文件中导入 chatty_widget 包:

import 'package:chatty_widget/chatty_widget.dart';

3. 使用 ChattyWidget

ChattyWidgetchatty_widget 的核心组件。你可以通过以下方式使用它:

class ChatScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat'),
      ),
      body: ChattyWidget(
        messages: [
          Message(
            id: '1',
            text: 'Hello!',
            sender: 'User1',
            time: DateTime.now(),
          ),
          Message(
            id: '2',
            text: 'Hi there!',
            sender: 'User2',
            time: DateTime.now(),
          ),
        ],
        onSend: (String text) {
          // Handle sending message
          print('Message sent: $text');
        },
        currentUser: 'User1',
      ),
    );
  }
}

4. 配置 ChattyWidget

ChattyWidget 提供了多个配置选项,你可以根据需要自定义聊天界面:

  • messages: 消息列表,包含所有要显示的消息。
  • onSend: 当用户发送消息时的回调函数。
  • currentUser: 当前用户的标识符。
  • showUserAvatars: 是否显示用户头像。
  • messageOptions: 配置消息的样式,如背景颜色、文本颜色等。
  • inputOptions: 配置输入框的样式和行为。

5. 自定义消息

你可以通过 Message 类自定义消息的内容和样式:

Message(
  id: '3',
  text: 'Custom message',
  sender: 'User1',
  time: DateTime.now(),
  type: MessageType.image, // 消息类型可以是文本、图片等
  imageUrl: 'https://example.com/image.jpg', // 如果是图片消息,可以指定图片URL
);

6. 处理消息发送

onSend 回调中处理消息发送逻辑。你可以将消息添加到 messages 列表中,并更新UI:

onSend: (String text) {
  setState(() {
    messages.add(Message(
      id: DateTime.now().toString(),
      text: text,
      sender: 'User1',
      time: DateTime.now(),
    ));
  });
},
回到顶部