首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter中获取屏幕及Widget宽高示例代码

前言 我们平时开发中过程中通常都会获取屏幕或者 widget 宽高用来做一些事情, Flutter 中,我们有两种方法来获取 widget 宽高。...MediaQuery 一般情况下,我们会使用如下方式去获取 widget 宽高: final size =MediaQuery.of(context).size; final width =size.width...从错误异常中我们可以大概了解到有两种情况会导致上述异常: 当没有 WidgetsApp or MaterialApp 时候,我们使用 MediaQuery.of(context) 来获取数据。...当我们在当前小部件中使用了上一个小部件 context,来使用 MediaQuery.of(context) 获取数据时候。...我们上述代码很显然是属于第一种情况,也就是说我们使用 MediaQuery.of(context) 地方并没有一个 WidgetsApp or MaterialApp 来提供数据。

3.1K20

端开发技术——解密Flutter响应式布局

Flutter响应式布局设计没有硬性规则。文中,我将向您展示设计响应式布局时可以遵循一些方法。...(context).size; Orientation orientation = MediaQuery.of(context).orientation; ​ return Scaffold...请记住:MediaQuery和LayoutBuilder之间主要区别在于,MediaQuery使用屏幕完整上下文,而不仅仅是特定小部件大小。...但是,如果您现在移动到一个特定屏幕,然后视图之间切换,那么您将丢失页面的上下文,也就是说您将始终返回到第一个页面,即“聊天”。为了解决这个问题,我使用了多个回调函数来返回所选页面到主页。...由于本文唯一目的是教您构建响应式布局,所以我讨论任何状态管理复杂性。

2.2K00

flutter 屏幕适配

屏幕适配之屏幕算法 既然是算法适配就必然少不了获取屏幕宽高,我们用就是媒体查询(MediaQuery), 下面是封装方法过后,当然直接使用也是可以: // 整屏宽度 double winWidth...(BuildContext context) { return MediaQuery.of(context).size.width; } // 整屏高度 double winHeight(BuildContext...context) { return MediaQuery.of(context).size.height; } 案例1: 蓝湖设计图有一张轮播图,宽度是 335 高度是 120,左右间隔是10,...分析: 左右间隔:设置margin然后左右20个间隔; 间隔和高:除最外边左右,内边都为10间隔,并包含上下,高度固定50; 对齐方式:对齐方式默认都为向左对齐; 组件:推荐Wrap,动态数据,依次撑开...,使用是小学数学里常用加减乘除,用了多少就用整个减多少, 很常见也很简单很实用,企业开发中用到这套就已经能完全适配所有屏幕了,主要是灵活应变。

1.2K10

flutter系列之:查询设备信息利器:MediaQuery

不用怕,flutter中为我们提供了一个叫做MediaQuery利器,大家一起来看看吧。 MediaQuery详解 MediaQuery从名字上来看,它意思是媒体查询。...InheritedWidget中可以实现of方法,通过调用BuildContext.dependOnInheritedWidgetOfExactType来从context中获取最临近InheritedWidget...this.boldText = false, this.navigationMode = NavigationMode.traditional, }) 可以看到,MediaQueryData中包含了很多有用属性...viewInsets指的是被系统UI所完全遮罩部分,比如说我们进行键盘输入时候,会弹起键盘界面。...我们可以看到返回了一个新MediaQuery,其中data部分使用了MediaQuery.of(context)来获取context最近MediaQuery,然后调用removePadding方法将对应

68820

Flutter 组件 | Builder 构造器与 BuildContext 认知

data; } BuildContext 可以在所有父辈节点中获取特定对象,文中讲到这就差不多了,后面会为 BuildContext 专门写一篇来详细讨论这些接口作用。...,因为MediaQuery MaterialApp 内部包含,这时 context 中是找不到,所以想要使用 MediaQuery,那就必需将 context 下移到 MaterialApp...也就说明使用 Builder 回调上下文,是可以使用 MediaQuery.of(ctx) 获取到媒体信息。 ? ? 到这里,你应该对上下层级有了一定认识。...这时有两种方案:1,抽离组件,在下层组件上下文中触发。 2, 使用 Builder 回调下层上下文。由于这里东西很少,没必要新建个组件,使用 Builder 就很轻轻方便。...---- IconTheme 中 merge 方法里也使用了 Builder 组件,这是为了没有上下时候拿到上下文,这样就不需要在 merge 方法中传入上下文了,这也是上下文无中生有的使用方式

1.9K20

如何在flutter中构建响应式布局(第五节)

使用相同代码库使您应用程序适应如此多样屏幕尺寸和像素密度始终是一个挑战。 Flutter 中设计响应式布局没有硬性规定。文中,我将向您展示一些设计此类布局时可以遵循方法。...(context).size; Orientation orientation = MediaQuery.of(context).orientation; return Scaffold...) { Size screenSize = MediaQuery.of(context).size; return Scaffold( body: Row(...) { Orientation deviceOrientation = MediaQuery.of(context).orientation; return Scaffold(...但是现在,如果您移动到特定屏幕然后视图之间切换,您将丢失页面的上下文;也就是说,您将始终返回第一页,即 Chats。为了解决这个问题,我使用了多个回调函数将所选页面返回到HomePage.

2.7K10
领券