使用GestureDetector,您可以通过以下方式获取被点击的小部件的大小和位置RenderBox:
GestureDetector(
onTap: () {
RenderBox renderBox = context.findRenderObject();
}
);
Run Code Online (Sandbox Code Playgroud)
因为 aTextSpan不是 a Widget,所以context.findRenderObject()从 a 内调用TextSpan只能为您提供封闭小部件的框RichText:
RichText(
text: TextSpan(
children: [
TextSpan(
text: 'Tap me',
recognizer: TapGestureRecognizer()..onTap = () {
//Gets box around RichText, not around this TextSpan
RenderBox renderBox = context.findRenderObject();
},
),
],
),
);
Run Code Online (Sandbox Code Playgroud)
是否有另一个 API 可以在点击时获取单个 TextSpan 的坐标?
您可以使用 onTapUp,它将为您提供包含全局触摸位置的后按信息。
然后,您可以使用该点击信息并将其传递给 renderObjects globalToLocal 转换函数,您将在小部件内获得本地坐标。
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |