Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 缺少文本span';使用SelectableText的s onTap回调(颤振)_Flutter - Fatal编程技术网

Flutter 缺少文本span';使用SelectableText的s onTap回调(颤振)

Flutter 缺少文本span';使用SelectableText的s onTap回调(颤振),flutter,Flutter,我需要1)在某些文本(章节)中,每个单词都能被点击(实现单词高亮显示),同时不丢失2)本机文本选择(用于复制) 我只做到了1)使用RichText,2)使用SelectableText,但从不同时使用。SelectableText似乎没有传递事件 每个单词都必须是一个单独的文本跨度(相同的跨度,注册识别器用于文本和SelectableText): 使用SelectableText 复制选择可以工作,但每个TextSpan上的TapGestureRecognizer停止工作 Container(

我需要1)在某些文本(章节)中,每个单词都能被点击(实现单词高亮显示),同时不丢失2)本机文本选择(用于复制)

我只做到了1)使用RichText,2)使用SelectableText,但从不同时使用。SelectableText似乎没有传递事件

每个单词都必须是一个单独的文本跨度(相同的跨度,注册识别器用于文本和SelectableText):

使用SelectableText 复制选择可以工作,但每个TextSpan上的TapGestureRecognizer停止工作

Container(
  child: SelectableText.rich(
    TextSpan(children: spans),
//  onTap: () => print("Common onTap event"),
  ),
),
我承认本机选择工具(至少在iOS上)已经在使用双击和长按事件。SelectableText.rich有自己的onTap事件(已注释掉),它可能不会将事件传递给底层TextSpans

在文档中,只讨论RichText,而不是SelectableText(后来添加)

这是预期行为吗?是否有解决办法? 如有任何提示,我们将不胜感激


注:使用颤振(通道稳定,v1.12.13+修补程序.5,在Mac OS X 10.14.6上)和Xcode 11.0以及iOS模拟器11.0。

不知道您是否找到了这个问题的答案。我也有同样的问题。您可以将onTap事件添加到SelectableText.Rich(onTap:(){})中,这应该与选择一样有效,但是我的问题是我正在显示多个子跨度,我需要在子跨度上有opTap事件。我看到的唯一其他解决方案是显示多个Selectable.Rich()而不是多个跨度。我现在放弃了可选择性->使用RichText
Container(
  child: RichText(text: TextSpan(children: spans)),
),
Container(
  child: SelectableText.rich(
    TextSpan(children: spans),
//  onTap: () => print("Common onTap event"),
  ),
),