如果设备的屏幕宽度高于某个树型窗口,如何将列窗口小部件动态更改为行窗口小部件?

使用 case 是,当用户在平板电脑或横向模式下使用应用程序时,布局应该有所不同,以优化可用宽度的使用.

在CSS flexbox中,只需将类从flex行更改为flex列即可,但在Flatter中,使用了小部件.

推荐答案

RowColumn共享共同的父项Flex,该父项采用轴方向.只需更改direction的值,就可以将Flex更改为行或列.

要获得屏幕宽度,可以使用MediaQuery.of(context).size.width.

您的小部件应该如下所示:

@override
Widget build(BuildContext context) {
  bool isScreenWide = MediaQuery.of(context).size.width >= kMinWidthOfLargeScreen;

  return Scaffold(
    body: Flex(
      direction: isScreenWide ? Axis.horizontal : Axis.vertical,
      children: <Widget>[
        ...
      ],
    )
  );
}

Flutter相关问答推荐

当仅点击一行时,所有行都被选中

Flutter 应用程序中的Firebase实时数据库中的orderByChild()不适用于我

在LinkedIn上分享Fighter和Web的链接会产生不同的结果

try 使用fl_Chart of Ffltter,但在导入它时遇到以下错误:Error:';TextScaler';is;t a type

如何在Flutter 中使用滚动展开窗口小部件

Flutter如何将2个以上的值传递到ListView上的另一个屏幕?

在Dart中使用Riverpod代码生成时出现问题(addListener)

Flutter:使用不包含导航器的上下文请求导航器操作

Riverpod 注册多少个 providers

Flutter列顶部和底部出现不必要的边距问题

Flutter: pie_chart 插件动画滚动问题

Flutter 判断 Uint8List 是否有效 Image

我的第一个 flutter 项目出错,启动时为空值?

Flutter 动保存新的变量值

面对Flutter 中的行和列问题

在不丢失游戏状态的情况下从 Flame 游戏导航到 Flutter 小部件

CircleAvatar 在 ListTile 中领先

构建失败 - 无法解析 io.grpc:grpc-core:[1.28.0]. (是的,我已经升级到 mavenCentral())

根据索引/变量更改小部件的 colored颜色

参数类型Future>不能分配给参数类型Future>?