Flutter 颤振叠加不';不要让孩子们重叠

Flutter 颤振叠加不';不要让孩子们重叠,flutter,flutter-layout,Flutter,Flutter Layout,我试图将一条水平线(当前为分隔符,但可以更改为自定义绘制)作为行的背景。但是,无论子项的顺序如何,该行始终位于行的前面。我不知道怎么了。这是密码 Stack( children: <Widget>[ Positioned.fill( child: const Divider(color: Colors.black), ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween,

我试图将一条水平线(当前为
分隔符
,但可以更改为
自定义绘制
)作为
的背景。但是,无论子项的顺序如何,该行始终位于
行的前面。我不知道怎么了。这是密码

Stack(
  children: <Widget>[
    Positioned.fill(
      child: const Divider(color: Colors.black),
    ),
    Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: <Widget>[
        Ink(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.arrow_forward, size: 32)
          ),
        ),
        Ink(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.location_on, size: 32)
          ),
        ),
        Ink(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.flag, size: 32)
          ),
        ),
      ],
    ),
  ],
),
堆栈(
儿童:[
定位填充(
子对象:常量分隔符(颜色:Colors.black),
),
划船(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
墨水(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(图标向前箭头,大小:32)
),
),
墨水(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(Icons.location\u on,大小:32)
),
),
墨水(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(Icons.flag,大小:32)
),
),
],
),
],
),
这是结果图


使用
容器
代替
墨水

Stack(
  children: <Widget>[
    Positioned.fill(
      child: const Divider(color: Colors.black),
    ),
    Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: <Widget>[
        Container(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.arrow_forward, size: 32)
          ),
        ),
        Container(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.location_on, size: 32)
          ),
        ),
        Container(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.flag, size: 32)
          ),
        ),
      ],
    ),
  ],
);
堆栈(
儿童:[
定位填充(
子对象:常量分隔符(颜色:Colors.black),
),
划船(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
容器(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(图标向前箭头,大小:32)
),
),
容器(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(Icons.location\u on,大小:32)
),
),
容器(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(Icons.flag,大小:32)
),
),
],
),
],
);

使用
容器
代替
墨水

Stack(
  children: <Widget>[
    Positioned.fill(
      child: const Divider(color: Colors.black),
    ),
    Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: <Widget>[
        Container(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.arrow_forward, size: 32)
          ),
        ),
        Container(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.location_on, size: 32)
          ),
        ),
        Container(
          decoration: ShapeDecoration(
            color: Colors.grey[350],
            shape: CircleBorder(),
          ),
          child: Padding(
            padding: const EdgeInsets.all(4),
            child: Icon(Icons.flag, size: 32)
          ),
        ),
      ],
    ),
  ],
);
堆栈(
儿童:[
定位填充(
子对象:常量分隔符(颜色:Colors.black),
),
划船(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
容器(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(图标向前箭头,大小:32)
),
),
容器(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(Icons.location\u on,大小:32)
),
),
容器(
装饰:造型装饰(
颜色:颜色。灰色[350],
形状:CircleBorder(),
),
孩子:填充(
填充:常量边集。全部(4),
子项:图标(Icons.flag,大小:32)
),
),
],
),
],
);

卸下定位螺钉。fill@Z.Cajurao不工作,并破坏布局(线未居中)移除定位。fill@Z.Cajurao没有工作,并且破坏了布局(线没有居中)谢谢!顺便问一下,我能问一下原因吗?根据本文档,
Ink
是给底层材料泼墨和加亮<另一方面,code>Container
会自己绘制,而不是按照最近的材质小部件绘制。
Ink
小部件直接在材质上绘制给定的装饰,与
InkWell
InkResponse
在材质上绘制的方式相同。因此,当一个动作完成时,
InkWell
在子对象上方绘制时,
Ink
小部件在小部件上方绘制……即使它在堆栈中也是如此!顺便问一下,我能问一下原因吗?根据本文档,
Ink
是给底层材料泼墨和加亮<另一方面,code>Container会自己绘制,而不是按照最近的材质小部件绘制。
Ink
小部件直接在材质上绘制给定的装饰,与
InkWell
InkResponse
在材质上绘制的方式相同。因此,当动作完成时,
InkWell
在子部件上方绘制时,
Ink
小部件在小部件上方绘制……即使它在堆栈中