首页 > 解决方案 > 如何获取点击的 TextSpan 的坐标?

问题描述

使用GestureDetector,您可以通过其获取被点击的小部件的大小和位置RenderBox

GestureDetector(
  onTap: () {
    RenderBox renderBox = context.findRenderObject();
  }
);

因为 aTextSpan不是 a ,所以从aWidget中调用只能给你包含的小部件框:context.findRenderObject()TextSpanRichText

RichText(
  text: TextSpan(
    children: [
      TextSpan(
        text: 'Tap me',
        recognizer: TapGestureRecognizer()..onTap = () {
          //Gets box around RichText, not around this TextSpan
          RenderBox renderBox = context.findRenderObject();
        },
      ),
    ],
  ),
);

是否有另一个 API 可以在点击单个 TextSpan 时获取它的坐标?

标签: flutter

解决方案


您可以将 WidgetSpan 与 Widget 子级一起使用。然后您将在 Widget 构建中获得正确的 RenderBox。


推荐阅读