【Flutter】按钮与文本(三)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Flutter】按钮与文本(三)相关的知识,希望对你有一定的参考价值。

参考技术A 此控件比较简单,按钮的功能可划分为UI样式与事件回调

这里将几种不同的按钮一起运行,做下对比动图如下:

这里对五种按钮进行column居中排列如下

Text用于显示简单样式文本,它包含一些控制文本显示样式的一些属性。

TextStyle用于指定文本显示的样式如颜色、字体、粗细、背景等。

TextStyle更多属性设置如下:

如果我们需要对一个Text内容的不同部分按照不同的样式显示,即富文本,这时就可以使用TextSpan,它代表文本的一个“片段”。

如上述,我们当然也可以在上述链接上添加手势事件,后续会提到。

在widget树中,文本的样式默认是可以被继承的,因此,如果在widget树的某一个节点处设置一个默认的文本样式,那么该节点的子树中所有文本都会默认使用这个样式,而DefaultTextStyle正是用于设置默认文本样式的。

举例如下:

Flutter,按下按钮后如何复制文本?

【中文标题】Flutter,按下按钮后如何复制文本?【英文标题】:Flutter, how to copy text after pressing the button? 【发布时间】:2020-04-21 07:34:10 【问题描述】:

对于我不完美的英语,我真的很抱歉;)

我想创建一个按钮,当按下此按钮时将复制文本值。我正在寻找它,但我没有找到任何信息。如何在颤振框架中创建自动复制?

提前感谢您的帮助。

【问题讨论】:

不确定您的意思,但不妨试试剪贴板api.flutter.dev/flutter/services/Clipboard-class.html 谢谢,我就是这个意思。 【参考方案1】:

首先,为您的String 指定一个名称:

String quote = "This is a very awesome quote";

其次,将String复制到剪贴板?:

onPressed: ()
    Clipboard.setData(ClipboardData(text: quote));
,

要通知用户它已完成,您可以使用SnackBar

onPressed: () =>
  Clipboard.setData(ClipboardData(text: inviteLink))
    .then((value)  //only if ->
       ScaffoldMessenger.of(context).showSnackBar(snackBar)); // -> show a notification
,

【讨论】:

不需要第三方库,只需导入import 'package:flutter/services.dart';并使用Clipboard 【参考方案2】:

您可以使用这个库clipboard_manager 来执行将文本存储在剪贴板中的实际操作。然后只需通过TextEditingController 实例访问您要复制的文本。

RaisedButton(
  child: Text('Copy'),
  onPressed: () 
    ClipboardManager.copyToClipBoard(
            _textEditingController.value.text)
        .then((result) 
      final snackBar = SnackBar(
        content: Text('Copied to Clipboard'),
        action: SnackBarAction(
          label: 'Undo',
          onPressed: () ,
        ),
      );
      Scaffold.of(context).showSnackBar(snackBar);
    );
  ,
),

或通过变量访问String

RaisedButton(
  child: Text('Copy'),
  onPressed: () 
    ClipboardManager.copyToClipBoard(
            _variableContainingString)
        .then((result) 
      final snackBar = SnackBar(
        content: Text('Copied to Clipboard'),
        action: SnackBarAction(
          label: 'Undo',
          onPressed: () ,
        ),
      );
      Scaffold.of(context).showSnackBar(snackBar);
    );
  ,
),

【讨论】:

【参考方案3】:

你可以使用这个插件clipboard

FlutterClipboard.copy('hello flutter friends').then(( value ) => print('copied'));

【讨论】:

以上是关于【Flutter】按钮与文本(三)的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Flutter 中提升按钮的选定文本的颜色?

Flutter - 如何根据按钮是在应用栏还是主屏幕中为平面按钮设置不同颜色的文本

如何在 Flutter 中将按钮图标更改为动画文本?

Flutter:通过按下后退按钮解除键盘时,不关注文本字段(多行)

Flutter中常用的按钮组件-Text(文本)

Flutter - 文本编辑控制器为空,但 Flutter 认为存在价值?