Flutter GridView,自动将行高度设置为最高的网格项

Flutter GridView,自动将行高度设置为最高的网格项,flutter,Flutter,标题是我试图实现的一个简化版本:GridView,它根据我提供的原型网格项自动设置行高。原型项是可能最高的项,例如,如果网格项包含文本,则原型将包含可能最长的文本 一种可能的解决方法是ListView,其中每一行都包装在一个IntrinsicHeight小部件中。但是: 行高度不一定像GridView中一样一致 根据文档,IntrinsicHeight效率低下。不知道多少虽然,也许它是微不足道的简单布局。理想情况下,仅对一个原型行调用此“计算固有高度”操作 据我所知,您希望动态设置GridVi

标题是我试图实现的一个简化版本:GridView,它根据我提供的原型网格项自动设置行高。原型项是可能最高的项,例如,如果网格项包含文本,则原型将包含可能最长的文本

一种可能的解决方法是ListView,其中每一行都包装在一个IntrinsicHeight小部件中。但是:

  • 行高度不一定像GridView中一样一致
  • 根据文档,IntrinsicHeight效率低下。不知道多少虽然,也许它是微不足道的简单布局。理想情况下,仅对一个原型行调用此“计算固有高度”操作

据我所知,您希望动态设置GridView项的大小。有两种方法,手动计算并根据您的内容每次设置,或者使用。因此,在您的GridView.builder中,您可以添加以下属性:

gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
                        maxCrossAxisExtent:
                            200.0, // maximum size of item (on small screens 1 item per row, on bigger as many as can fit with 200.0 px width)
                        childAspectRatio: 5 / 6,
                        crossAxisSpacing: 20,
                        mainAxisSpacing: 20,
                      ),

它为您提供了用于管理GraveVIEW项目的额外工具,保持纵横比,它也具有最大的大小,它不应该超过自定义的行高度,这取决于被馈入网格项目的项目,您可以考虑使用这个“强> < /强>插件”。p>


它为普通网格和狭长网格提供了不同的小部件,并将处理输入的随机大小。因此,无论您向网格馈送的小部件的大小如何,它都将接受项目的大小

,这可能会有所帮助。如果您发布了一些带有需求的示例图像,那么我们可以尝试给出一些基本示例。仅仅通过阅读你的描述来想象你想要什么有点挑战性。你解决了吗@fhucho?@PhanSinh不……这需要一个固定的纵横比,我不知道。纵横比取决于网格宽度、列数和最高项的固有高度。所有这些在构建时都不为人所知。@fhucho好的)这是到目前为止我所知的)