Flutter GridView childAspectRatio 动态内容

Flutter GridView childAspectRatio dynamic content

gridview / listview

之前我使用 ListView.builder 来显示我的列表,它尊重内容的高度 (图片 3) ,但是我需要用 GridView 在 2 列中显示它,不幸的是,这不再考虑高度,这就是为什么我对 childAspectRatio (图1),只知道系统的字母大小在1.0,但是放大的时候溢出了container (image 2) 并且不会扩展,因为 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 的比率。 我的目标是 GridView 元素的高度应该尽可能小。

谢谢。

也许 GridView 不是您要找的。您是否考虑过 https://api.flutter.dev/flutter/widgets/Table-class.html or 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 使用 shrinkWrap)?