我只想在堆栈中显示一个带有其他小部件的红色框,但是当我使用DecoratedBox而不是Container时,它不会在屏幕上绘制。我以为DecoratedBox只是Container的一个更明确的版本,我缺少什么?

Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        DecoratedBox( // doesn't work
          decoration: BoxDecoration(
            color: Colors.red,
          ),
        ),
      ],
    );
  }

最佳答案

Stack不呈现DecoratedBox的原因是它没有默认大小。另一方面,Container将默认为其父级。

Container不仅是DecoratedBox。它还使用其他小部件,包括SizedBoxAlignment

因此:

Container(
  color: Colors.red,
)


不等于:

DecoratedBox(
  decoration: BoxDecoration(color: Colors.red),
)


但改为:

SizedBox.expand(
  child: DecoratedBox(
    decoration: BoxDecoration(color: Colors.red),
  ),
)

关于android - 堆叠涂料容器,但不装饰容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57442887/

10-10 18:30