android - 自动检测链接抖动

标签 android flutter text hyperlink

我有一个关于文本小部件无法检测到有链接的问题。
稍后我将收到来自服务器的文本响应,如图所示。响应采用文本和链接的形式。
问题是 flutter 上的文本小部件无法检测到它。如何使文本中的链接可检测和可点击?
我已阅读并搜索过此内容,但找不到。因为大部分链接文本必须由您自己输入。虽然我的问题是文本自动存在,因为它是来自服务器的响应
谁能帮我找到答案?
先感谢您
enter image description here

最佳答案

文本小部件 自动识别链接。
但是,您可以使用 TextSpan 将操作插入到文本中。小部件和 url_launcher ,有点像这样:

RichText(
    text: TextSpan(
        children: [
            TextSpan(text: 'some text'),
            TextSpan(
                text: url,
                style: new TextStyle(
                    color: Colors.blue,
                    decoration: TextDecoration.underline
                ),
                recognizer: TapGestureRecognizer()
                ..onTap = () async {
                    if (await canLaunch(url)) {
                      await launch(url);
                    } else {
                      throw 'Could not launch $url';
                    }
                },
            ),
        ]
    ),
)
您可以将其包装到一个类中并为自己制作一个小的 LinkText 小部件。
什么flutter_linkify是它自动检测文本中的 URL 和电子邮件 ID 并链接它们。
您也可以使用正则表达式来执行此操作。例如。为了识别 url,你可以有类似的东西:
 bool _isLink(String input) {
     final matcher = new RegExp(
        r"(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)");
    return matcher.hasMatch(input);
}
您必须稍微修改一下以获取子字符串并将其用作文本跨度中的 url!

关于android - 自动检测链接抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67481325/

相关文章:

android - 如何在Flutter中修复在编译时和运行时具有不同版本的 'android.arch.lifecycle:runtime'?

flutter - 如何使用 flutter 为 ios 创建下拉菜单?

javascript - 我如何从视频中检测字幕并将其复制到文本区域

android - 如何在屏幕上加载 Widget 之前打开一个新 Activity ,Android?

java - 安卓Java : Get Response Body from HttpUrlConnection

android - Android 上没有滚动的 ListView

c - 读入一个包含 5 行的文本文件,并将其填充到 C 中的二维数组中

android - CollapsingToolbarLayout - 设置 expandedTitleTextAppearance 和 collapsedTitleTextAppearance 可能会导致问题

flutter - Bloc:是否有可能产生 2 次相同的状态?

python - 使用 Python 在文本文件中查找和替换