如何使用Flutter创建图像网格

vatpfxk5  于 2023-08-07  发布在  Flutter
关注(0)|答案(2)|浏览(180)

我试图实现这一点使用Flutter,可以有很多图像,但我找不到正确的组件来完成...请谁有一个想法哪个组件实现这一点或如何可以做到,特别是在 dart ,Flutter。
如果有任何 dart 包可以实现这一点,请,并提前感谢。
找到下面的参考图像..

的数据

bxjv4tth

bxjv4tth1#

你可以使用flutter_staggered_grid_view,你需要使用mainAxisCellCount。当4个项目在一个组中时,它将是

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,
      ),
    );
  }
}

qyuhtwio

qyuhtwio2#

已经有一些图库构建器插件,您可以在pub.dev上检查,如flutter_staggered_grid_viewstaggered_grid_view_flutter
无论如何,如果你想尝试创建一个不同的画廊或自定义网格设计,你可能应该创建自己的小部件。
对于您的示例,我的方法不是网格,而是列表视图。每一行都有您的自定义布局,加载多张图像(根据您的示例,最多可加载4张照片),或者更多,这取决于您可能实现的其他布局设计。
您也可以使用2列和2行内,或使用行和容器或SizedBox创建这种效果。

相关问题