繁体   English   中英

扑。 - 如何在 Gridview 中动态 crossAxisCount

[英]Flutter. - How to have dynamic crossAxisCount in Gridview

我有一个 GridView,我希望 crossAxisCount 根据设备大小特别是移动设备 (crossAxisCount:3) 和平板电脑 (crossAxisCount:4) 进行更改。 我是 Flutter 的新手,我知道有 MediaQuery,但我不知道如何使用它。

我还附上了一张图片以供参考。 我在寻找什么。

您可以检查设备的最短边是否 < 600 所以它是电话

crossAxisCount: MediaQuery.of(context).size.shortestSide < 600 ? 2 : 4,

作为一个选项,您可以像这样为 BuildContext 创建扩展

extension ContextExtension on BuildContext {
  bool get isTablet => MediaQuery.of(this).size.shortestSide > 600;

  bool get isPhone => MediaQuery.of(this).size.shortestSide < 600;
}

并使用它:

crossAxisCount: context.isTablet ? 4 : 2

您可以使用 wrap 小部件而不是 gridview 您可以在本文中了解如何使用 wrap 小部件: https : //medium.com/flutter-community/flutter-wrap-widget-e1ee0b005b16

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM