Flutter底部弹出菜单showModalBottomSheet设置顶部圆角

最近有几个小伙伴在使用到showModalBottomSheet时经常在群里问如何设置顶部圆角,于是乎激起了我的好奇心,我们先看下正常情况下用showModalBottomSheet设置圆角的话会怎么样
image.png
showModalBottomSheet(
          context: context,
          builder: (BuildContext context) {
              return Container(
                    height: 200,
                    width: double.infinity,
                    child: Center(child: Text("showModalBottomSheet")),
                    decoration: BoxDecoration(
                      color: Colors.blueAccent,
                      borderRadius: BorderRadius.only(
                        topLeft: Radius.circular(25),
                        topRight: Radius.circular(25),
                      ),
                    ),
              );
            },
          );
可以看到topLefttopRight虽然设置了圆角但是会漏出底部的背景色,很尴尬,不是我们想要的效果
在查看showModalBottomSheet的源码时发现它使用了应用主题的默认亮度设置Brightness.light并且菜单弹出时的遮罩颜色为Colors.black54
image.png
知道了以上这些,那怎么实现顶部圆角呢,上图
image.png
代码很简单只需使用stack在顶部的底层加上container并将container的颜色设置成菜单弹出时遮罩的颜色Colors.black54即可
          showModalBottomSheet(
            context: context,
            builder: (BuildContext context) {
              return Stack(
                children: <Widget>[
                  Container(
                    height: 25,
                    width: double.infinity,
                    color: Colors.black54,
                  ),
                  Container(
                    height: 200,
                    width: double.infinity,
                    child: Center(child: Text("showModalBottomSheet")),
                    decoration: BoxDecoration(
                      color: Colors.blueAccent,
                      borderRadius: BorderRadius.only(
                        topLeft: Radius.circular(25),
                        topRight: Radius.circular(25),
                      ),
                    ),
                  ),
                ],
              );
            },
          );
这样我们的顶部圆角就设置成功了
还有一种方法是直接修改MaterialAppbrightnessBrightness.dark,但是实用这种方法主题就变成了全黑色,不太实用。
以上就是设置showModalBottomSheet圆角的方法,这个不是最优解,只是暂时的实现了功能,如果小伙伴们有更好的办法可以在评论告诉我 哈哈
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 5,361评论 3 23
  • 一、亲密关系的四个阶段 亲密关系有四个阶段:绚丽、幻灭、内省、启示。 “绚丽”阶段就是蜜月期,两个人如胶似漆,亲密...
    不懂小姐在远方阅读 1,774评论 0 2
  • 2018-1-6 【飞儿创意美术】牙仙子 ——线描,水彩与编织的组合 小朋友自己选择背景色,尝试画面在不同的背景色...
    飞儿创意阅读 380评论 0 1
  • Docker 查看启动的 container 查看所有的 container MongoDB 获取镜像 创建目录 ...
    万事皆成阅读 243评论 0 0
  • 文静 倚墙四月天,置家新肥添。 人前不显贵,独识入眸间。 一枝一色艳,一瓣一润颜。 不似玫瑰香,仪态也万千。...
    文静_5c0c阅读 254评论 1 4

友情链接更多精彩内容