首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取被点击的TextSpan的坐标?

如何获取被点击的TextSpan的坐标?
EN

Stack Overflow用户
提问于 2019-05-02 15:10:24
回答 2查看 505关注 0票数 5

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

代码语言:javascript
复制
GestureDetector(
  onTap: () {
    RenderBox renderBox = context.findRenderObject();
  }
);

因为TextSpan不是Widget,所以从TextSpan内调用context.findRenderObject()只能得到包含RichText的小部件的盒子

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

是否有其他接口可以在点击时获取单个TextSpan的坐标?

EN

回答 2

Stack Overflow用户

发布于 2019-05-02 16:13:05

您可以使用onTapUp,它将返回包含全局触摸位置的轻拍信息。

然后,您可以使用该点击信息并将其传递给renderObjects globalToLocal转换函数,您将在您的小部件中获得一个本地坐标。

票数 1
EN

Stack Overflow用户

发布于 2021-04-20 12:01:09

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55947309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档