首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在widget中绘制后,如何获得它的宽度和高度?

在widget中绘制后,可以通过以下方法获得它的宽度和高度:

  1. 使用测量器(Measurer):在绘制widget之前,可以使用测量器来获取widget的宽度和高度。测量器可以通过调用widget的measure方法来实现。例如,在Flutter中,可以使用RenderBoxsize属性来获取widget的宽度和高度。
  2. 使用回调函数:在widget绘制完成后,可以通过回调函数来获取它的宽度和高度。在Flutter中,可以使用LayoutBuilder widget来监听widget的大小变化,并在回调函数中获取宽度和高度。
  3. 使用全局键(Global Key):可以为widget分配一个全局键,并使用该键来获取widget的宽度和高度。在Flutter中,可以使用GlobalKey来实现。通过在widget的构建方法中传递一个全局键,并在需要获取宽度和高度的地方使用该键来获取。

总结起来,以上方法可以帮助我们在widget绘制后获得它的宽度和高度。具体选择哪种方法取决于具体的开发需求和场景。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云测量器(Measurer):https://cloud.tencent.com/product/measurer
  • 腾讯云LayoutBuilder:https://cloud.tencent.com/product/layoutbuilder
  • 腾讯云全局键(Global Key):https://cloud.tencent.com/product/globalkey
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在onCreate获取View高度宽度

如何在onCreate获取View高度宽度 开发过程中经常需要获取到View宽和高,可以通过View.getWidth()View.getHeight()来得到宽高。...然而新手们经常在onCreate方法中直接调用上面两个方法得到值是0! 这是为什么呢? 因为View绘制是通过两个遍历来完成,一个measure过程,一个layout过程。...只有经过“测量”“布局”之后,View才能正确地完成绘制。而这一切是发生在onCreate方法之后。...所以onCreate中直接使用View.getWidth()View.getHeight()是无法得到正确。 那应该怎么onCreate获取View宽高呢?...开发者可以通过View.post()方法来获取到View宽高,该方法传递一个Runnable参数,然后将其添加到消息队列,最后UI线程执行。

5.3K20

android如何获取view布局高度宽度详解

前言 可能很多情况下,我们都会有activity获取view 尺寸大小(宽度高度需求。面对这种情况,很多同学立马反应:这么简单问题,还用你说?你是不是傻。。...当我们 onCreate() 方法获取某个 View 组件宽度高度,直接调用 getWidth()、getHeight()、getMeasuredWidth()、getMeasuredHeight...下面来一起看看吧 实现方法 一、使用 View.measure 测量 View 该方法测量宽度高度可能与视图绘制完成真实宽度高度不一致。...OnPreDrawListener 监听事件 视图将要绘制时调用该监听事件,会被调用多次,因此获取到视图宽度高度要移除该监听事件。...view.getHeight(); // 获取高度 } }); 四、重写 View onSizeChanged 方法 视图大小发生改变时调用该方法,会被多次调用,因此获取到宽度高度需要考虑禁用掉代码

6K10
  • Flutte部件目录-基本部件(一)

    绘制过程,容器首先应用给定transform,然后绘制decoration来填满填充范围,然后绘制子组件,最后绘制foregroundDecoration,并填满填充范围。...没有子组件容器尽可能大,除非传入约束是无限。在这种情况下,他们尽可能小,有子组件容器将自己尺寸扩大到他们孩子大小,构造函数宽度高度constraints参数将覆盖这些。...Ink,用于Material上绘制装饰,允许InkResponseInkWell飞溅来绘制它们。 布局部件目录。...该行通过溢出边上绘制黄色黑色条纹警告来报告此情况。如果行外有空间,溢出量将以红色字体打印。...根据弹性因子,非零弹性因子子部件(例如扩展)划分剩余垂直空间。 例如,弹性系数为2.0子部件将获得弹性系数为1.0子部件两倍垂直空间量。

    7.5K20

    Flutter跨平台移动端开发丨Column、Row、Flex、Wrap、Flow、Stack

    (类似于 Android id) mainAxisAlignment :表示子 widget Column 空间内对齐方式。...max 表示最大宽度,min 表示最小宽度,也就是所有子 widget 宽度之和 crossAxisAlignment:表示子 widgets 纵轴方向对齐方式,Column 高度等于子 widgets...max 表示最大宽度,min 表示最小宽度,也就是所有子 widget 宽度之和 crossAxisAlignment:表示子 widgets 纵轴方向对齐方式,row 高度等于子 widgets...max 表示最大宽度,min 表示最小宽度,也就是所有子 widget 宽度之和 crossAxisAlignment:表示子 widgets 纵轴方向对齐方式,flex 高度等于子 widgets...:文本绘制基线(alphabetic/ideographic) children:子 widget 集合 Expanded(扩展) 可以按照设定比例值扩展/扩大 row、column、flex 布局

    2K30

    自定义View【1】

    今天我们就到代码层次来看下如何实现使用自定义View吧 自定义流程 ---- 在前面的文章我们已经学习了Flutter自定义View简单步骤,今天我们就按照这个步骤来实现下自定义View。...paint方法就是Flutter负责View绘制地方,使用传递来canvassize即可完成对目标View绘制。...shouldRepaint是控制自定义View是否需要重绘,返回fals代表这个View构建完成不需要重绘。...可以看到我们坐标(100,100)位置绘制了一个半径为红色圆。 但是,我们可以看到这个圆都被红色填充了,明明我们在前面定义画笔宽度为5来着,怎么回填充满呢?...高度等于宽度,对不起这是圆 绘制圆弧drawArc drawArc(Rect rect, double startAngle, double sweepAngle, bool useCenter, Paint

    93810

    Flutter开发-容器类组件

    我们实现一个最小高度为50,宽度尽可能大红色容器。...DecoratedBox(装饰容器) DecoratedBox可以在其子组件绘制前(或)绘制一些装饰(Decoration),如背景、边框、渐变等。...position :此属性决定在哪里绘制Decoration,接收DecorationPosition枚举类型,该枚举类有两个值: background:子组件之后绘制,即背景装饰。...foreground:子组件之上绘制,即前景。 BoxDecoration 我们通常会直接使用BoxDecoration类,它是一个Decoration子类,实现了常用装饰元素绘制。...Button,通常悬浮在页面的某一个位置作为某种常用动作快捷入口 SafeArea 使用 SafeArea 可以让 child widget 顶部底部腾出足够空间方便处理 iPhoneX 这类手机

    3.6K20

    【Flutter 专题】70 图解自定义 ACEStepper 步进器

    支持滑动,不限制整体宽度; Step 按钮支持单个显隐性处理; Stepper 每个 Step 内容支持全部展示单独展示; 其他自定义 ThemeData; ?...和尚准备 Stepper 基础上进行扩展,首先要了解 Stepper 构成,根据一切都是 Widget 思想,和尚绘制了一个基本构成图: ? 新特性扩展 1....} 绘制圆点虚线,和尚准备支持自定义连线宽度(直线/虚线),因此圆点半径根据宽度获得,圆点之间距离和尚尝试是一个圆点大小,一段长度绘制 _circleLength / radius / 4...横向滑动 分析源码,Stepper 横向方式是将 Step 放置 Row ,此时若 Step 数量过多会造成宽度溢出;和尚调整存储方式,将自定义 ACEStepper 放置横向 ListView...Content 连接方式 纵向 Stepper Content 展示对应连线是单独连线,与上下两个 Header 进行衔接;但 Content 大小并不固定,而和尚绘制圆点虚线需要获取其高度进行绘制

    1.3K21

    flutter系列之:按比例缩放AspectRatioFractionallySizedBox

    简介 我们构建UI时候,为了适应不同屏幕大小,通常需要进行一些自适应配置,而最常见自适应就是根据某个宽度或者高度自动进行组件缩放。...AspectRatio逻辑是首先获得最大width或者height,然后根据width或者height来计算heightwidth。...首先是一个无限宽度但是高度为150container,然后再containerchild中使用了AspectRatio组件,如下所示: Widget build(BuildContext context...对于aspectRatiowidget来说,他宽度是无限,他高度是150,所以aspectRatio高度是可以确定,也就是150,我们根据aspectRatio比例,计算出width...child中使用aspectRatio=2.0。

    1.4K20

    Flutter进阶之实现动画效果(一)

    Flutter构建期间通过树重建保留State对象并将其附加到新树各自控件,然后,它们确定该控件子树是如何构建。...由于数据集当前仅有一个0~100之间数字,所以图表将是一个带有单个条形条形图,其高度由该数字确定,我们将使用初始值50来避免高度为null。...width, double height): // 从左上角上边缘构造一个矩形,并设置其宽度高度 new Rect.fromLTWH( size.width-barWidth/2.0, size.height-barHeight...,并设置其宽度高度 new Rect.fromLTWH( size.width-barWidth/2.0, size.height-barHeight, barWidth, barHeight ),...因此大约得出结论时,我们应用程序,数据变化越小,花费时间点越多。 ?

    1.2K41

    Flutter Image实现图片加载

    所有的widget并不是直接绘制图片,而是控制图片主要属性容器,负责绘制是RenderObject,他们中间是通过ElementTree来联系起来。...有了这个基础,所有的widget都不会提供画布(canvas)来直接绘制image RawImage 这是一个最基础图片容器Widget。...Image 这是一个通用包装类,包装了RawImage。 前言 Image 基本使用 从ImageProvider来获取图片显示,这个类使用基本RawImage一致。...3.2 fit fit:该属性用于图片显示空间图片本身大小不同时指定图片适应模式。...fitWidth:图片宽度会缩放到显示空间宽度高度会按比例缩放,然后居中显示,图片不会变形,超出显示空间部分会被剪裁。

    1.9K11

    Flutter 视图布局-前言

    但我能做到是将我在学习过程我遇到问题、踩到坑、理解上问题解决完,再重新整理输出出来,以便有需要或有兴趣学少侠们提供帮助参考。 Ok,以上就是我瞎逼逼废话了。...Baseline 根据子项基线对它们位置进行定位 Widget。 IntrinsicWidth 一个 Widget,它将它子元素宽度调整其本身实际宽度。...Transform 绘制子元素之前应用转换 Widget。 Offstage 一个布局 Widget,可以控制其子元素显示隐藏。...OverflowBox 对其子项施加不同约束 Widget,它可能允许子项溢出父级。 SizedBox 一个特定大小盒子。这个 Widget 强制孩子有一个特定宽度高度。...如果宽度高度为NULL,则此 Widget 将调整自身大小以匹配该维度孩子大小。

    2.3K110

    flutter系列之:按比例缩放AspectRatioFractionallySizedBox

    简介 我们构建UI时候,为了适应不同屏幕大小,通常需要进行一些自适应配置,而最常见自适应就是根据某个宽度或者高度自动进行组件缩放。...AspectRatio逻辑是首先获得最大width或者height,然后根据width或者height来计算heightwidth。...首先是一个无限宽度但是高度为150container,然后再containerchild中使用了AspectRatio组件,如下所示: Widget build(BuildContext context...对于aspectRatiowidget来说,他宽度是无限,他高度是150,所以aspectRatio高度是可以确定,也就是150,我们根据aspectRatio比例,计算出width...child中使用aspectRatio=2.0。

    2K00

    Flutter | 布局组件

    Flutter Element 树才是最终绘制树,Element 树是通过 Widget 树来创建 (通 Widget.createElement()) ,Widget 其实就是 Element...Colum 宽度取决于其子 Widget 宽度最大 Widget,所以 hi 会被显示 world 中间部分 Row Column 都只会在主轴上占用尽可能最大空间,而纵轴长度取决于他们最大子...Widget 长度 如何让 hi world 屏幕中间对齐呢,有如下两种办法: class ColumnTest extends StatelessWidget { @override...Spacer 功能是占用指定比例空间,实际上只是 Expanded 一个包装类 流式布局 Wrap ,Flow 使用 Row Column 时,如果子 Widget 超出 屏幕范围,则会报溢出错误...child, }) 复制代码 left,top,right,bottom 分别代表 tack 四个边距离,widget 耦合 height 用于指定需要定位元素宽度高度

    2.7K30

    Flutter布局指南之深入理解BoxConstraints

    因此,在这篇文章,让我们试着了解约束条件是如何工作,以及对Widget尺寸影响。 那么,Flutter约束究竟是什么?...Flutter约束是对一个Widget宽度高度简单限制 这些限制是通过BoxConstraints对象指定。...❝BoxConstraints.loose( Size size ) ❞ 这个构造函数设置了Loose约束,最小宽度最小高度为0,最大宽度最大高度为size对象所提供,也就是说,一个Widget可以...下面是Container不同条件下最终尺寸: 案例:Container有无限制父约束,没有孩子,没有对齐。 ❝Container试图根据给定高度宽度尽可能地缩小尺寸。...Widget,例如,列Widget设置了Unbounded约束,而这个column一个子Widget高度被设置为double.infinity,即无界高度约束,那么Flutter将出错

    2.1K20

    Flutter —布局系统概述

    这次,我试图更好地理解“布局系统工作原理”,并回答以下问题: 我小部件尺寸看起来不合适,怎么回事? 我只想将Widget放置特定位置,但是没有任何属性可以控制,为什么呢?...但是,我们将对最重要内容进行很好概述,力图将一切可视化。 “两个阶段” 布局系统和约束 首先,小部件是Flutter SDK构建块,但它们不负责将其自身绘制到屏幕。...每个RenderBox还将与一个BoxConstraints对象相关联,该对象包含四个值:最大|最小宽度最大|最小高度。RenderBox可以选择具有所需任何大小,但它必须遵守这些值/约束。...注意,max | min宽度高度都相等;因此,runApp使用了严格约束-通过这样做,MyApp除了选择屏幕上可用空间外,选择其大小时将别无选择。 然后将约束向下传播到Widget树。...而是,AppBar以首选/默认大小响应Scaffold:高度= 80,宽度= 392(受接收到约束约束) 获得AppBar大小,Scaffold继续下一个子项:Center 好,这里发生了很多事情

    1.7K20

    Flutter原理:三棵重要树(渲染过程、布局约束、应用视图构建等)

    读者也可以把看作一个更为实际控件,因为我们手机屏幕上显示控件并非我们代码中所写 Widget,我们代码中所使用像 Container、Text 等这类组件其属性只不过是我们想要构建组件配置信息...方法生成,该对象内部提供多个属性及方法来帮助框架层组件如何布局渲染。...子节点接受到来自父节点约束,会依据产生自己具体布局信息,如父节点规定我最小宽度是 500 单位像素,子节点按照这个规则可能定义自己宽度为 500 个像素,或者大于 500 像素任何一个值...该约束规定了允许每个子节点最大和最小宽度高度。如下图,父节点传入 Min Width 为 150,Max Width 为 300 BoxConstraints: ?...当子节点接受到该约束,便可以取得上图中绿色范围内值,即宽度 150 到 300 之间,高度大于 100,当取得具体值之后再将取得具体大小值上传给父节点,从而达到父子布局通信。

    1.7K40
    领券