【问题标题】:Backdrop like Container in FlutterFlutter 中类似 Container 的背景
【发布时间】:2018-10-10 11:41:51
【问题描述】:

我有一个类似容器的背景(带圆角的容器)。如果作为一个孩子是一个文本,一切都很好。但是,如果孩子是例如图片,它覆盖了整个容器(甚至是角落)。

我的构建方法:

@override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: buildAppBar("", context),
        body: new Container(
            color: Colors.brown,
            child: Material(
              borderRadius: const BorderRadius.only(
                  topLeft: const Radius.circular(16.0),
                  topRight: const Radius.circular(16.0)),
              elevation: 12.0,
              child: new Column(
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  children: <Widget>[
                    Image(image: NetworkImage('url')),
                  ]),
            )));
  }

如何使图像在半径角内?

【问题讨论】:

  • 我已经编辑了我的答案 - 还有另一个没有ClipRRect的解决方案

标签: android ios dart flutter


【解决方案1】:

使用ClipRRect

ClipRRect(
        borderRadius: BorderRadius.only(topLeft: Radius.circular(16.0), topRight: Radius.circular(16.0)),
        child: Image(image: NetworkImage('url'))),

UPDCard 中找到了另一个解决方案-Clip.antiAlias

Material(
      child:  Card(
        shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.only(topLeft: Radius.circular(16.0), topRight: Radius.circular(16.0))),
        child: Image(image: NetworkImage('url')),
        elevation: 12.0,
        clipBehavior: Clip.antiAlias,
      ),
    ),

【讨论】:

  • 谢谢,但是如果孩子是Container,TabBar等,也会出现同样的问题。它必须有更好的解决方案
  • 所以你可以把Container或者TabBar放在ClipRRect里面。我想,我不明白你的问题
  • 你的解决方案是可以接受的,但我想要提升(这是我想使用 Material 的原因)
  • 你可以把 ClipRRect 放在 Material 里面
  • 谢谢,我正在寻找。
猜你喜欢
  • 2018-01-25
  • 2017-06-17
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多