import 'dart:math';
import 'package:flutter/material.dart';
// 尖角方向枚举
enum BubbleAngleDirection { left, right }
class BubbleWidget extends StatelessWidget {
BubbleWidget(
this.data, {
Key key,
this.textStyle = const TextStyle(color: Colors.black, fontSize: 13),
this.maxWidth,
this.color = Colors.lightGreen,
this.radius = 10,
this.padding = 10,
//
this.angle = 60,
this.angleHeight = 8,
this.anglePos = BubbleAngleDirection.left,
}) : super(key: key);
final String data; //文本内容
final TextStyle textStyle;//文本样式
final double maxWidth; //最大宽带
final Color color; //背景颜色
final double radius;
final double padding;
// 尖角
final double angle; //尖角角度
final double angleHeight; //尖角高度
final BubbleAngleDirection anglePos;
@override
Widget build(BuildContext context) {
return CustomPaint(
painter: _BubbleCanvas(
context: context,
data: data,
textStyle: textStyle,
// 默认最大宽带为屏幕宽度的3/4
maxWidth: maxWidth == null ? MediaQuery.of(context).size.width * 0.75 : maxWidth,