flutter - 制作 GridView ,元素之间没有间隙

标签 flutter dart flutter-layout

这是我当前的代码:

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: GridView.builder(
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 5,
          childAspectRatio: 1,
        ),
        itemCount: 25,
        itemBuilder: (_, __) => Container(
          color: Colors.red,
        ),
      ),
    );
  }
}
这是它给出的输出:
Notice the gaps between some widgets?
注意到某些网格项目之间的差距了吗?
我已经尝试使用ExpandedAspectRatioSizedBox进行了10种不同的变化,并且所有方法似乎都能产生相同的精确结果。

最佳答案

github上有一个关于它的问题:https://github.com/flutter/flutter/issues/29702
但您总是可以进行简单的修改:

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: GridView.builder(
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 5,
          childAspectRatio: 1,
        ),
        itemCount: 25,
        itemBuilder: (context, index) => LayoutBuilder(
          builder: (context, constraintes) => OverflowBox(
            maxHeight: constraintes.maxHeight + 0.5,
            maxWidth: constraintes.maxWidth + 0.5,
            child: Container(
              color: Colors.red,
            ),
          ),
        ),
      ),
    );
  }
}

关于flutter - 制作 GridView ,元素之间没有间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098884/

相关文章:

firebase - 将数据从 firestore 加载到带有 flutter 的列表中的问题

flutter - 如何在不重新渲染整个屏幕的情况下在屏幕上加载更多数据?

flutter - 将 map 与AssetImage一起使用

intellij-idea - 无法在IntelliJ Dart模板中添加新的flutter Web项目!还尝试了Vs代码,要求使用哪个Dart模板

android-studio - Flutter和Dart已安装在Android Studio中,并且已构建App,但它很简陋,Flutter Doctor表示未安装

flutter - 在选项卡 View 页面之间保留状态

flutter - 不正确使用ParentDataWidget-如何解决此错误?

json - 'int'类型不是 'double'类型的子类型— Dart/flutter 错误

flutter - 使用 AppBar 时如何更改 Flutter 中的状态栏颜色?

Flutter -PDF -- 错误 - 这个小部件创建了 20 多个页面。这可能是小部件或文档中的问题