This question already has answers here:
Gesture detection in Flutter TextSpan

(4个答案)


在11个月前关闭。




我想使文本的一部分成为可轻拍的,以便可以在其上调用一个函数。我也想控制可点击文本的样式。在最佳情况下,我还可以将可调整区域的大小增加到例如42px。

text - 使文字的特定部分在 flutter 中可点击-LMLPHP

我已经研究过flutter_linkify和linkify,但这不是我想要的。我很好奇是否已经在flutter库中建立了一个包,甚至已经内置了一个包。

最佳答案

结合使用RichTextTextSpanGestureRecognizer。使用GestureRecognizer,您可以检测到敲击,双击,长按等。

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"');
                }),
        ],
      ),
    );
  }

text - 使文字的特定部分在 flutter 中可点击-LMLPHP

10-05 20:59