Flutter GridView childAspectRatio 动态内容

Posted

技术标签:

【中文标题】Flutter GridView childAspectRatio 动态内容【英文标题】:Flutter GridView childAspectRatio dynamic content 【发布时间】:2021-11-20 12:58:47 【问题描述】:

gridview / listview

以前我使用 ListView.builder 来显示我的列表,它尊重内容的高度 (图 3),但是我需要在 2 列中显示它使用 GridView,不幸的是,这不再考虑高度,这就是为什么我对 childAspectRatio (图片 1) 进行了精确计算,知道只是系统的字母大小在1.0,但是放大的时候溢出容器(图2),因为的值没有展开em>Ratio 已经是静态的了;例如:

final itemWidth = MediaQuery.of(context).size.width; 
double ratio;

if(isBigBox)
  ratio = (itemWidth / 117);
 else 
  ratio = (itemWidth / 50);


return GridView.count(
  crossAxisCount: 2,
  physics: NeverScrollableScrollPhysics(),
  crossAxisSpacing: 10.0,
  mainAxisSpacing: 10.0,
  childAspectRatio: ratio,
  shrinkWrap: true,
  children: list.map((dynamic item) 
    return Boxes(
      item: item,
    );
  ).toList(),
);

我需要知道如何以这种方式处理 GridView 的 Ratio。 我的目标是 GridView 元素的高度应尽可能低。

谢谢。

【问题讨论】:

【参考方案1】:

也许 GridView 不是您想要的。您是否考虑过https://api.flutter.dev/flutter/widgets/Table-class.html 或https://pub.dev/packages/flutter_staggered_grid_view(https://pub.dev/documentation/flutter_staggered_grid_view/latest/flutter_staggered_grid_view/StaggeredGridView/StaggeredGridView.count.html with shrinkWrap)?

【讨论】:

谢谢你,我用过平板电脑类,它可以工作! 超级棒,@DanielRoldán。请不要忘记接受我的回答或建议我如何改进它。

以上是关于Flutter GridView childAspectRatio 动态内容的主要内容,如果未能解决你的问题,请参考以下文章

flutter 系列之:flutter 中常用的 GridView layout 详解

flutter GridView 禁止滚动

flutter GridView 禁止滚动

Flutter:在 GridView 中选择卡片

Gridview 和 Gridtile Flutter

Flutter- Gridview里面的listview问题