【问题标题】:flutter orientation change layout landscape optimize颤动方向改变布局景观优化
【发布时间】:2018-08-29 15:47:41
【问题描述】:

我在纵向模式下设计了布局,一切看起来都很好。因此,在完成叠加后,我将设备旋转到横向模式并看到底部溢出。高度上的小部件太多,因此设备无法显示它们。我在网上搜索了一种优化横向模式布局的常用方法,但没有发现任何适用于颤振的方法。那么flutter有没有通用的方法来解决这个问题呢?

【问题讨论】:

标签: layout dart flutter landscape portrait


【解决方案1】:

您的问题可能更具体一些 - 有关应用程序的一些详细信息或屏幕截图会有所帮助。

但是,我可以想到三种不同的解决方案。

  1. 对水平和垂直屏幕使用不同的小部件。

    专业人士:您可以确保您的屏幕看起来完全符合您的要求。

    con:你必须写两次。如果您的逻辑是封装的,那么这可能只是意味着以两种不同的方式布置相同的小部件。

    您可以自己编写查询,也可以只使用 Flutter 中内置的 OrientationBuilder class

  2. 使用 Wrap 类而不是具有适当对齐方式的行/列。这将允许您的小部件根据需要对齐以填充可用空间。请参阅下面的屏幕截图,其中显示了一个示例:

    以上截图是使用wrap documentation中的示例代码创建的。

  3. 使用相同的视图,但将其放在listviewscrollable 中,以便在溢出时可以滚动。不过,在这种情况下,您最好彻底阅读文档,以便了解滚动在 Flutter 中的工作原理以及相关限制。

【讨论】:

  • 好的,第二个解决方案非常好,谢谢。如果我在 wrap 类中的孩子之间的间距并不总是相同的怎么办?
  • 如果您需要特定元素之间的特定间距,我建议您将小部件包装在容器中并使用一些填充,或者如果将SizedBox 作为单独的小部件放在您的两个可见的小部件。 TBH - 在大多数情况下,您最终可能会使用行/列和换行的组合。即标题、副标题、元素列表。标题和副标题总是各占一行,元素列表(换行)填满其余空间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多