我想让文本的一部分可点击,这样我就可以对其调用函数.另外,我想要有对可录入文本的样式的控制.在最好的情况下,我还可以将可点击区域的大小增加到例如42px.

enter image description here

我已经研究了fltter_linkify和linkify,但这不是我想要的.我很好奇是否已经有一个软件包,或者甚至已经内置到Flutter Flutter 库中了.

推荐答案

使用RichText搭配TextSpanGestureRecognizer.使用GestureRecognizer可以检测tapdouble taplong press等.

Widget build(BuildContext context) {
    TextStyle defaultStyle = TextStyle(color: Colors.grey, fontSize: 20.0);
    TextStyle linkStyle = TextStyle(color: Colors.blue);
    return RichText(
      text: TextSpan(
        style: defaultStyle,
        children: <TextSpan>[
          TextSpan(text: 'By clicking Sign Up, you agree to our '),
          TextSpan(
              text: 'Terms of Service',
              style: linkStyle,
              recognizer: TapGestureRecognizer()
                ..onTap = () {
                  print('Terms of Service"');
                }),
          TextSpan(text: ' and that you have read our '),
          TextSpan(
              text: 'Privacy Policy',
              style: linkStyle,
              recognizer: TapGestureRecognizer()
                ..onTap = () {
                  print('Privacy Policy"');
                }),
        ],
      ),
    );
  }

enter image description here

Flutter相关问答推荐

Flutter ReorderableListView在可滚动父级中无法完美工作

在Flutter中创建具有固定行的压缩水平列表

为什么要在值列表中两次放入空安全性

Flutter 图标记移动

Flex ListView用于可滚动和响应的页面

Flutter守护进程无法启动

从Firestore流式传输单个文档还是整个集合更好?

Flutter在CustomPainter的右上角和左上角添加了2条曲线

点击按钮后重新启动定时器

不使用 GlobalKey 仍然收到 GlobalKey 被多次使用的错误

Flutter 自定义对齐

如何与 PostgreSQL 和外部网站交互 flutter apk?

Flutter 分析发现 Gitlab CI/CD 管道中的问题,但它在本地没有

为什么 appBar 小部件在 flutter 中不是常量

我在弹出框中编辑后无法保存日期

如何让多个图标转到不同的网址

Flutter 本地通知在最新版本中不起作用

gridview 的所有按钮都应该在Flutter 中适合其父容器

如何将所有行项目平等地放在一行中?Flutter

Flutter 评级栏包选中和未选中的容器