【问题标题】:How to create a Row of Containers without any spacing between them in flutter?如何创建一排容器,它们之间没有任何间距?
【发布时间】:2023-04-07 11:07:01
【问题描述】:

我正在尝试在颤动中创建一个容器行,并且我确实使用 Row 和多个容器作为子容器来做到这一点。现在,问题是每列之间有一个空白。我该如何删除这些。我尝试使用十字轴和主轴对齐,但没有帮助。我该如何解决这个问题,以便它们之间根本没有空间。

Here's a screenshot of the Row of Containers


Row(
                // mainAxisAlignment: MainAxisAlignment.spaceBetween,
                // crossAxisAlignment: CrossAxisAlignment.end,
                children: [
                  for (var i in list)
                    Container(
                      width: (MediaQuery.of(context).size.width - 30) /list.length,//Subtarcting 30 to adjust the padding of parent  
                      color: Colors.red,
                    ),

【问题讨论】:

  • 请显示完整代码。您在哪个设备或模拟器上进行了测试?

标签: flutter dart flutter-layout


【解决方案1】:

尝试将容器包装在 Expanded 小部件中:

Row(
   children: [
           for (var i in list)
              Expanded(
                 child: Container(
                      color: Colors.red,
                         )
                   )
           ]
     )
   

【讨论】:

    【解决方案2】:

    这实际上是 Android 上的一个错误,iOS 在没有 border 的情况下也能正常工作。考虑添加borderwidth:0color:red 作为容器,如下所示:

          Row(
              // mainAxisAlignment: MainAxisAlignment.spaceBetween,
              // crossAxisAlignment: CrossAxisAlignment.end,
              children: [
              for (int i = 0; i < 30; i++)
              Container(
                decoration: BoxDecoration(
                  border: Border.all(color: Colors.red, width: 0),
                  color: Colors.red,
                ),
                width: (MediaQuery.of(context).size.width - 30) /
                    30, //Subtarcting 30 to adjust the padding of parent
              ),
          ])
    

    【讨论】:

      【解决方案3】:

      尝试将Row 小部件封装在container 小部件中并设置其颜色Colors.red

       Container(
        color: Colors.red,
        child:Row(children:<Widget>[
        
        for (var i in list)
        Container(width: (MediaQuery.of(context).size.width - 30) /5,//Subtarcting 30 to adjust the padding of parent  
                        color: Colors.red,),
      
      ]));
      

      【讨论】:

      • 是的,我知道,但可以满足您的要求。你没有展示你的完整代码和这样做背后的逻辑。
      • iOS没有问题。仅在 android 上存在像素渲染问题。无论如何,我都会提供一个完美的解决方案。谢谢
      猜你喜欢
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多