一尘不染

如何在Flutter中制作可复制的文本小部件?

flutter

当在Text窗口小部件上长标签时,将显示带有“复制”的工具提示。单击“复制”时,文本内容应复制到系统剪贴板。

以下内容将在长按时复制文本,但不会显示“复制”,因此用户将不知道其内容已复制到剪贴板。

class CopyableText extends StatelessWidget {
  final String data;
  final TextStyle style;
  final TextAlign textAlign;
  final TextDirection textDirection;
  final bool softWrap;
  final TextOverflow overflow;
  final double textScaleFactor;
  final int maxLines;
  CopyableText(
    this.data, {
    this.style,
    this.textAlign,
    this.textDirection,
    this.softWrap,
    this.overflow,
    this.textScaleFactor,
    this.maxLines,
  });
  @override
  Widget build(BuildContext context) {
    return new GestureDetector(
      child: new Text(data,
          style: style,
          textAlign: textAlign,
          textDirection: textDirection,
          softWrap: softWrap,
          overflow: overflow,
          textScaleFactor: textScaleFactor,
          maxLines: maxLines),
      onLongPress: () {
        Clipboard.setData(new ClipboardData(text: data));
      },
    );
  }
}

阅读 1265

收藏
2020-08-13

共1个答案

一尘不染

从Flutter 1.9开始,您可以使用

SelectableText("Lorem ipsum...")

选择文本后,将显示“复制”上下文按钮。

在此处输入图片说明

2020-08-13