【问题标题】:Rearranging UI elements according to screen size in Flutter在 Flutter 中根据屏幕大小重新排列 UI 元素
【发布时间】:2020-06-27 14:41:12
【问题描述】:

我查看了 Flutter Interactive 19 主题演讲视频,其中提到了一项即将推出的功能,可根据屏幕大小调整和重新排列 UI。在这个视频中,17:30 分钟。

https://youtu.be/NfNdXgJZfFo

6 个月前它还处于“非常早期的阶段”。有人知道它是否已经发布了吗?我相信不是 LayoutBuilder 或 MediaQuery.of(),因为它们在视频主题演讲之前可用。

我知道还有其他开发人员提供的其他软件包,但我对来自 Google 的软件包感兴趣。

【问题讨论】:

    标签: flutter web dart flutter-layout


    【解决方案1】:

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

    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、方向等)。

    欲了解更多信息,请查看:

    【讨论】:

      猜你喜欢
      • 2020-09-29
      • 1970-01-01
      • 2013-05-12
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2023-03-04
      • 2021-10-11
      相关资源
      最近更新 更多