flutter - 在 Flutter 中根据屏幕大小重新排列 UI 元素

标签 flutter web dart flutter-layout

我查看了 flutter interact 19 keynote 视频,其中提到了一个即将推出的功能,可以根据屏幕大小调整和重新排列 ui。在这个视频中,17:30 分钟。
https://youtu.be/NfNdXgJZfFo
6 个月前它还处于“非常早期”阶段。有人知道它是否已经发布了吗?我相信不是 LayoutBuilder 或 MediaQuery.of(),因为它们在视频主题演讲之前可用。
我知道其他开发人员也有其他软件包,但我对 Google 的软件包很感兴趣。

最佳答案

我正在使用 MediaQuery.of(context).size;在我的项目中,在稳定 channel 中根据宽度更改布局。它对我有用,没有问题。我编写了一个区分大屏幕(平板电脑)和小屏幕(智能手机)的小部件。

class ScreenWidthBuilder extends StatelessWidget {
  final Widget Function(BuildContext context, bool isAWideScreen)  builder;
  final int bigScreenUpFrom;

  const ScreenWidthBuilder({Key key, @required this.builder, this.bigScreenUpFrom = 600}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    Size screenSize = MediaQuery.of(context).size;
    // screenSize.width changes depending on screen orientation
    bool isAWideScreen = screenSize.width >= this.bigScreenUpFrom;
    return this.builder(context, isAWideScreen);
  }
}
首先我尝试使用 LayoutBuilder小部件,但我能够使用 MediaQuery.of(context).size; 获得更好的结果.使用 MediaQuery,您可以请求有关设备屏幕的许多数据(大小、textScaleFactor、方向等)。
有关更多信息,请查看:
  • LayoutBuilder 的文档
  • MediaQuery 的文档和 MediaQueryDataMediaQuery.of(context) 返回.
  • 关于flutter - 在 Flutter 中根据屏幕大小重新排列 UI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62611429/

    相关文章:

    flutter - 如何将内部json部分转换为dart/flutter中的对象

    c - Dart RawSockets 有什么用?

    ios - Flutter Firebase Analytics应用在启动时崩溃

    javascript - 如何在固定背景的情况下允许页面上的内容滚动

    flutter - 如何获取当前路线的名称?

    html - 推特 bootstrap css 未加载

    Javascript slider 具有更大的中心 slider ? <[小大小]>

    flutter - 实时将字符串传递给另一个类

    flutter - WebView 在黑暗模式下加载白色背景 - flutter

    flutter - 是否有一个较短的符号可以使小部件有条件地扩展?