在上述代码中,context.findRenderObject()用于获取DragTarget的RenderBox对象,然后使用localToGlobal方法将details.offset转换为全局坐标。 通过这种方式,你可以在DragTarget.onMove中获取到DragTarget的全局坐标,并进行相应的处理。
②获取对应组件的宽高、位置。获取宽高时,既可以用gk1.currentContext?.size拿到Size实例,进而获取其宽高,又可以通过gk1.currentContext?.findRenderObject()拿到RenderObject实例,然后强转为RenderBox类型,然后调用其localToGlobal(Offset.zero)方法获取Offset实例,进而获取其宽高。通过Offset实例还可以获取其位置。注意,获...
final RenderBox renderBoxRed = _keyRed.currentContext.findRenderObject(); final positionsRed = renderBoxRed.localToGlobal(Offset(0, 0)); print("positions of red:$positionsRed"); final RenderBox renderBoxBlue = _keyBlue.currentContext.findRenderObject(); final positionsBlue = renderBoxBlue.localToGlobal...
key: anchorKey ), 3.获取控件的坐标: RenderBox renderBox = anchorKey.currentContext.findRenderObject(); var offset = renderBox.localToGlobal(Offset.zero); 控件的横坐标:offset.dx 控件的纵坐标:offset.dy 如果想获得控件正下方的坐标: RenderBox renderBox = anchorKey.currentContext.findRenderObject(); var...
///获取组件的位置staticWidgetSizegetWidgetSize(GlobalKeykey){//获取组件的位置,在左上右下finalRenderBoxrenderBox=(key.currentContext?.findRenderObject()asRenderBox);finalleft=renderBox.localToGlobal(Offset.zero).dx;//左边finaltop=renderBox.localToGlobal(Offset(renderBox.size.width,0)).dy;finalbottom=rend...
final RenderBox renderBox = key.currentContext.findRenderObject(); final position = renderBox.localToGlobal(Offset.zero); print("POSITION of $name: $position "); } void main() { runApp(LayoutBuilder( builder: (context, constraints) { printConstraint('MyApp', constraints); ...
varbox = renderObjectasRenderBox; onSized( Rect.fromLTWH( box.localToGlobal(Offset.zero).dx, box.localToGlobal(Offset.zero).dy, size.width, size.height, ), ); }else{ onSized(Rect.zero); } } voidonSized(Rect rect); } typedefOnSized =voidFunction(Rect rect); ...
box.finalbox=context.findRenderObject()asRenderBox;finaltopLeft=box.size.topLeft(box.localToGlobal(constOffset(0.0,0.0)));finalbottomRight=box.size.bottomRight(box.localToGlobal(constOffset(0.0,0.0)));Rect anchorBounds;anchorBounds=(topLeft.dx.isNaN||topLeft.dy.isNaN||bottomRight.dx.isNaN||...
5. 使用GlobalKey和RenderBox:通过GlobalKey获取控件的RenderBox,然后使用localToGlobal和globalToLocal方法计算控件的位置和尺寸。 GlobalKey key = GlobalKey(); ... RenderBox renderBox = key.currentContext!.findRenderObject() as RenderBox; Offset position = renderBox.localToGlobal(Offset.zero); ...
它的一些基础信息封装在子类RenderBox中 RenderBox renderBox = stackContext.findRenderObject(); ///然后通过 RenderBox 来获取对应的Text在手机屏幕上显示的位置 与大小 信息 ///相对于全局的位置 Offset offset = renderBox.localToGlobal(Offset.zero); ///获取指定的Widget的大小 信息 Size size = renderBox....