我试图实现这一点使用Flutter,可以有很多图像,但我找不到正确的组件来完成...请谁有一个想法哪个组件实现这一点或如何可以做到,特别是在 dart ,Flutter。如果有任何 dart 包可以实现这一点,请,并提前感谢。找到下面的参考图像..的数据
bxjv4tth1#
你可以使用flutter_staggered_grid_view,你需要使用mainAxisCellCount。当4个项目在一个组中时,它将是
mainAxisCellCount
mainAxisCellCount: switch (i % 4) { 0 || 3 => .25, _ => .75, },
字符串你可以玩这个widget。
class Stg4 extends StatelessWidget { const Stg4({super.key}); @override Widget build(BuildContext context) { final items = List.generate(10, (index) => "path $index"); List<Widget> children = [ for (int i = 0; i < items.length; i++) StaggeredGridTile.count( crossAxisCellCount: 1, mainAxisCellCount: switch (i % 4) { 0 || 3 => .25, _ => .75, }, child: ColoredBox(color: Colors.cyanAccent, child: Text(items[i])), ), ]; return Scaffold( body: StaggeredGrid.count( crossAxisCount: 2, mainAxisSpacing: 4, crossAxisSpacing: 4, children: children, ), ); } }
型
qyuhtwio2#
已经有一些图库构建器插件,您可以在pub.dev上检查,如flutter_staggered_grid_view或staggered_grid_view_flutter无论如何,如果你想尝试创建一个不同的画廊或自定义网格设计,你可能应该创建自己的小部件。对于您的示例,我的方法不是网格,而是列表视图。每一行都有您的自定义布局,加载多张图像(根据您的示例,最多可加载4张照片),或者更多,这取决于您可能实现的其他布局设计。您也可以使用2列和2行内,或使用行和容器或SizedBox创建这种效果。
2条答案
按热度按时间bxjv4tth1#
你可以使用flutter_staggered_grid_view,你需要使用
mainAxisCellCount
。当4个项目在一个组中时,它将是字符串
你可以玩这个widget。
型
qyuhtwio2#
已经有一些图库构建器插件,您可以在pub.dev上检查,如flutter_staggered_grid_view或staggered_grid_view_flutter
无论如何,如果你想尝试创建一个不同的画廊或自定义网格设计,你可能应该创建自己的小部件。
对于您的示例,我的方法不是网格,而是列表视图。每一行都有您的自定义布局,加载多张图像(根据您的示例,最多可加载4张照片),或者更多,这取决于您可能实现的其他布局设计。
您也可以使用2列和2行内,或使用行和容器或SizedBox创建这种效果。