首页
学习
活动
专区
圈层
工具
发布

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

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

3.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter 系列之GetX的学习(3) --> 其他实用功能

    // 你可以判断是否在浏览器中运行 // 在 Windows、iOS、OSX、Android 等上 GetPlatform.isWeb // 相当于:MediaQuery.of(context).size.height..., // 但不可变 Get.height Get.width // 获取当前导航器的上下文 Get.context // 获取前景中 snackbar/对话框/底部表单的上下文,可以在代码中的任何地方使用...Get.contextOverlay // 注意:以下方法是上下文的扩展。...因为你在 UI 的任何地方都有上下文的访问权限,所以可以在 UI 代码的任何地方使用它 // 如果你需要可变的高度/宽度(如桌面或可以缩放的浏览器窗口),你需要使用上下文 context.width...() /// 类似于 MediaQuery.of(context).viewPadding context.mediaQueryViewPadding() /// 类似于 MediaQuery.of

    72510

    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方法将对应的

    1.1K20

    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.5K10

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

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

    2.7K21

    如何在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.

    4.1K10
    领券