允许窗口小部件溢出到另一个窗口小部件

时间:2018-03-01 12:14:53

标签: flutter

我试图实现允许窗口小部件溢出到另一个窗口小部件的效果,如图所示here

我目前的代码是:

  @override
  Widget build(BuildContext context) {
    Size screenSize = MediaQuery.of(context).size;
    return new Column(children: <Widget>[
      new Container(
      color: Colors.blue,
      height: screenSize.height / 2,
      width: screenSize.width,
      child: new Center(
        child: new Container(
          margin: const EdgeInsets.only(top: 320.0),
          color: Colors.red,
          height: 40.0,
          width: 40.0,
        ),
      ))
]);
}

这导致了following,广场被集装箱切断了。
还有另外一种方法吗?

1 个答案:

答案 0 :(得分:3)

一般来说,你应该从不溢出。

如果您需要特定的布局,则需要在不同的图层上明确区分“溢出”小部件。

其中一个解决方案是Stack小部件,它允许小部件在彼此之上。

最终实现这一目标:

enter image description here

flutter代码将是

new Stack(
  fit: StackFit.expand,
  children: <Widget>[
    new Column(
      mainAxisSize: MainAxisSize.max,
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: <Widget>[
        new Expanded(
          child: new Container(
            color: Colors.blue,
          ),
        ),
        new Expanded(
          child: new Container(
            color: Colors.white,
          ),
        ),
      ],
    ),
    new Center(
      child: new Container(
        color: Colors.red,
        height: 40.0,
        width: 40.0,
      ),
    )
  ],
);