flutter support negative margin

需求

要求两个布局的widget有重叠的部分。


flutter-support-negative-margin

思路

刚开始想,通过设置margin为负值,就可以解决(这是android 布局思维)。但是很遗憾,flutter中的padding及margin都不能设置负值(negative)。

通过查阅资料,得知通过设置 transform 属性可以达到效果。在此记录下,方便以后查询。

实现代码

关键代码

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: <Widget>[
          Container(
            color: Colors.blue,
            width: Size.infinite.width,
            height: 200,
            child: const Align(
                child: Text(
              "This is top widget",
              style: TextStyle(fontSize: 20, color: Colors.white),
            )),
          ),
          Container(
            color: Colors.red,
            height: 200,
            width: 200,
            transform: Matrix4.translationValues(0,-20,0),
          )
        ],
      ),
    );
  }
}

参考

https://stackoverflow.com/questions/48086486/does-flutter-support-negative-margin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容