如何在 Flutter 中使用 GridView 创建不同大小的单元格?
How to create cells with different sizes using GridView in Flutter?
我想用 Flutter 创建一个类似的视图,我们可以通过在 iOS 中创建一个 UICollectionViewLayout
来实现。
如何在 Flutter 中使用 GridView
实现此目的。如果不行GridView
,还有其他方法吗?
GridView 并非设计用于执行此操作。你可以让 Wrap 做你想做的事,虽然从你的例子来看它可能不会完全做到(水平它肯定不会因为它将项目排列成行;垂直它可能适合你也可能不适合你具体取决于你在做什么)。
如果您只需要两列,您可以简单地让一行包含两列,并确保将项目放在正确的列中。
或者更复杂但可能是最好的答案是自己编写以这种方式排列项目的逻辑 - 请参阅 CustomMultiChildLayout。
编辑:还有一个可能适合您的软件包。它不能做任意大小,你需要提前知道项目的大小,但你可以指定项目占据网格的多行或多列。参见 it here。
请注意,如果您有很多项目,您可能想用 CustomScrollView 做一些事情,但这并不真正在这个答案的范围内。
https://github.com/letsar/flutter_staggered_grid_view
这会对你有所帮助。我认为该插件提供了不同的大小。
我想用 Flutter 创建一个类似的视图,我们可以通过在 iOS 中创建一个 UICollectionViewLayout
来实现。
如何在 Flutter 中使用 GridView
实现此目的。如果不行GridView
,还有其他方法吗?
GridView 并非设计用于执行此操作。你可以让 Wrap 做你想做的事,虽然从你的例子来看它可能不会完全做到(水平它肯定不会因为它将项目排列成行;垂直它可能适合你也可能不适合你具体取决于你在做什么)。
如果您只需要两列,您可以简单地让一行包含两列,并确保将项目放在正确的列中。
或者更复杂但可能是最好的答案是自己编写以这种方式排列项目的逻辑 - 请参阅 CustomMultiChildLayout。
编辑:还有一个可能适合您的软件包。它不能做任意大小,你需要提前知道项目的大小,但你可以指定项目占据网格的多行或多列。参见 it here。
请注意,如果您有很多项目,您可能想用 CustomScrollView 做一些事情,但这并不真正在这个答案的范围内。
https://github.com/letsar/flutter_staggered_grid_view 这会对你有所帮助。我认为该插件提供了不同的大小。