Flutter - 容器上的叠加卡片小部件

标签 flutter dart flutter-layout overlay flutter-widget

在 flutter 中,是否可以将卡片的一部分放在另一个容器上?在 CSS 中,我们会将 margin-top 设置为负值或使用 translate 属性。由于我们无法为 margin-top 设置负值,所以有其他替代方法吗?

enter image description here

最佳答案

是的,您可以使用 Stack 小部件来实现它。您可以在背景上堆叠卡片并提供顶部或底部填充。

一个简单的例子如下:

class StackDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Stack(
      children: <Widget>[
        // The containers in the background
        new Column(
          children: <Widget>[
            new Container(
              height: MediaQuery.of(context).size.height * .65,
              color: Colors.blue,
            ),
            new Container(
              height: MediaQuery.of(context).size.height * .35,
              color: Colors.white,
            )
          ],
        ),
        // The card widget with top padding, 
        // incase if you wanted bottom padding to work, 
        // set the `alignment` of container to Alignment.bottomCenter
        new Container(
          alignment: Alignment.topCenter,
          padding: new EdgeInsets.only(
              top: MediaQuery.of(context).size.height * .58,
              right: 20.0,
              left: 20.0),
          child: new Container(
            height: 200.0,
            width: MediaQuery.of(context).size.width,
            child: new Card(
              color: Colors.white,
              elevation: 4.0,
            ),
          ),
        )
      ],
    );
  }
}

上述代码的输出如下所示:

enter image description here

希望这会有所帮助!

关于Flutter - 容器上的叠加卡片小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402837/

相关文章:

flutter - 是否有一个较短的符号可以使小部件有条件地扩展?

arrays - 如何更新数组中的 map 数据? flutter 火力

sqlite - 有没有办法以 Flutter 方式将 CSV 文件导入 Sqlite 数据库?

flutter - 列 flutter 内的水平滚动

dart - flutter 如何将十六进制字符串转换为二进制字符串?

flutter - 如何在应用程序中心创建具有左/右边距的列?

dart - 如何解码从 netty 服务器发送的对象并将对象编码到 Dart 中的 netty 服务器

flutter - 如何在堆栈中缩小的容器中正确居中文本小部件

flutter - 如何去除Flutter中图片和文字之间的空格

dart - 像 whatsapp Flutter 一样编辑列表