使用GestureDetector,您可以通过其RenderBox获取点击的小部件的大小和位置
GestureDetector(
onTap: () {
RenderBox renderBox = context.findRenderObject();
}
);因为TextSpan不是Widget,所以从TextSpan内调用context.findRenderObject()只能得到包含RichText的小部件的盒子
RichText(
text: TextSpan(
children: [
TextSpan(
text: 'Tap me',
recognizer: TapGestureRecognizer()..onTap = () {
//Gets box around RichText, not around this TextSpan
RenderBox renderBox = context.findRenderObject();
},
),
],
),
);是否有其他接口可以在点击时获取单个TextSpan的坐标?
发布于 2019-05-02 16:13:05
您可以使用onTapUp,它将返回包含全局触摸位置的轻拍信息。
然后,您可以使用该点击信息并将其传递给renderObjects globalToLocal转换函数,您将在您的小部件中获得一个本地坐标。
发布于 2021-04-20 12:01:09
您可以将WidgetSpan与Widget子控件一起使用。然后,您将在小部件构建中获得正确的RenderBox。
https://stackoverflow.com/questions/55947309
复制相似问题