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