如何在颤动中显示横向和纵向的不同布局

Posted

技术标签:

【中文标题】如何在颤动中显示横向和纵向的不同布局【英文标题】:How to show different layout for landscape and portrait in flutter 【发布时间】:2020-06-21 23:36:29 【问题描述】:

只是想知道如何在 Flutter 中显示横向和纵向的不同布局。在 Native for android 中,我们只需创建 layoutlayout-land 文件夹并将 xml 文件放在那里,系统将自动检测适当的方向布局。 任何有关颤振的帮助将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

使用方向生成器并检查内部方向是纵向还是横向。 查看文档here.

示例代码:

OrientationBuilder(
  builder: (context, orientation) 
    return GridView.count(
      // Create a grid with 2 columns in portrait mode,
      // or 3 columns in landscape mode.
      crossAxisCount: orientation == Orientation.portrait ? 2 : 3,
    );
  ,
);

【讨论】:

【参考方案2】:

使用官方小部件,如文档所说 https://flutter.dev/docs/cookbook/design/orientation

OrientationBuilder(
  builder: (context, orientation) 
    return GridView.count(
      // Create a grid with 2 columns in portrait mode,
      // or 3 columns in landscape mode.
      crossAxisCount: orientation == Orientation.portrait ? 2 : 3,
    );
  ,
);

【讨论】:

以上是关于如何在颤动中显示横向和纵向的不同布局的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动布局为纵向和横向方向配置不同的布局?

iOS 自动布局:如何在 Xcode 故事板中为 iPad 横向和 iPad 纵向设计不同的布局?

如何在不使用代码的情况下使用约束 AutoLayout 来指定横向与纵向的不同布局?

播放 VideoView 的不同纵向和横向布局

iPad:如何根据方向(横向/纵向)显示不同的屏幕

Android小部件不同的纵向和横向方向