在Flutter中的Children <widget>中添加填充

时间:2019-04-04 04:50:08

标签: flutter margin padding flutter-layout

我有一个包含一些图像的网格视图。

但是你知道,它们是如此靠近,我想给他们一个空格。

但是我还是做不到。

我已经尝试做一些实验。 但它仍然给我什么。 问题是填充在gridview内部。 如果我将它们(所有项目)放在1个容器,1个容器,1个容器等中,则gridview内有很多容器。

`Container(
            margin: new EdgeInsets.all(2.0),
            color: Colors.red,
            padding: EdgeInsets.all(10.0),
            child: GridView.count(
              physics: NeverScrollableScrollPhysics(),
              shrinkWrap: true,
              crossAxisCount: 6,
              children: <Widget>[
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
                Image.asset('images/user.png', width: 30.0),
              ],
            ),
          ),

此处是预览:https://imgur.com/ot3phXV`

2 个答案:

答案 0 :(得分:1)

您可以在孩子之间添加SizedBox

SizedBox(
  width: 200.0,
  height: 300.0,
)

您的代码可以编辑为

Container(
    margin: new EdgeInsets.all(2.0),
    color: Colors.red,
    padding: EdgeInsets.all(10.0),
    child: GridView.count(
      physics: NeverScrollableScrollPhysics(),
      shrinkWrap: true,
      crossAxisCount: 6,
      children: <Widget>[
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
        SizedBox(width: 10,height: 10,),
        Image.asset('images/user.png', width: 30.0),
      ],
    ),
  ),

答案 1 :(得分:1)

gridview中为彼此之间的空间

设置gridview的 mainAxisSpacing crossAxisSpacing 属性,

GridView.count(
          physics: NeverScrollableScrollPhysics(),
          shrinkWrap: true,
          crossAxisCount: 6,
          mainAxisSpacing: 8.0,
          crossAxisSpacing: 8.0,
          children: <Widget>[
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
            Image.asset('images/user.png', width: 30.0),
          ],
        ),