gpt4 book ai didi

flutter - 检测文本中的@ 并将其显示为链接(Flutter)

转载 作者:行者123 更新时间:2023-12-04 07:57:26 25 4
gpt4 key购买 nike

我想知道如何创建一个识别器来检测文本中的 @ 并将其颜色更改为蓝色,并为其添加 onTap 功能 :) 就像这张图片。 enter image description here

最佳答案

我认为这应该适用于@someone 之类的东西:
你需要导入这个:import 'package:flutter/gestures.dart';这是您的输入字符串:String input = "This is a long text but in between there should be this: @someone The text continues here, but there is @another.";这是我为您制作的小部件:textSplitter(input);

Widget textSplitter(String input) {
List<TextSpan> textSpans = [];

for (var i = 0; i <= '@'.allMatches(input).length; i++) {
String part = input.substring(0, input.indexOf('@')==-1? input.length : input.indexOf('@'));
textSpans.add(TextSpan(text: part, style: TextStyle(color: Colors.white)));

input = input.substring(input.indexOf('@'));
String clickable = input.substring(0, input.indexOf(' ')==-1? input.length : input.indexOf(' '));
textSpans.add(
TextSpan(
text: clickable,
style: TextStyle(
color: Colors.blue,
decoration: TextDecoration.underline,
),
recognizer: new TapGestureRecognizer()
..onTap = () {
//do stuff here with string clickable
print(clickable);
},
),
);
input = input.substring(input.indexOf(' ')==-1? input.length : input.indexOf(' '));
}

return RichText(
text: TextSpan(
children: textSpans,
),
);
}
结果应该是这样的: Result of Code
请注意,@ 之后的任何内容都包含在空格之前。

关于flutter - 检测文本中的@ 并将其显示为链接(Flutter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66628680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com