Flutter定义圆角的BottomSheet

作者 : 开心源码 本文共1124个字,预计阅读时间需要3分钟 发布时间: 2022-05-13 共235人阅读

显示 BottomSheet

我们在少量日常开发的场景中,可能需要使用到BottomSheet来显示菜单,就像这样。

image.png

而在Flutter中,BottomSheet很好实现,只要要一行代码调用Flutter包中自带的BottomSheet显示方法showModalBottomSheet就可。

image.png

使用方法like this:

    void _showMenu(context, Menu menu) {      showModalBottomSheet(        context: context,        builder: (context) => Column(          mainAxisAlignment: MainAxisAlignment.spaceAround,          children: <Widget>[            Expanded(              child: Container(                child: _getMenuList(menu),              ),            ),          ],        ),      );    }

圆角 BottomSheet

但有时候,我们的视觉同学会会觉得这个BottomSheet的角不够圆润,我们想把BottomSheet上面左右两个角改为圆角,Android Native 实现效果如下:

1575008083736970.gif

而对于初学者来说,在设置圆角的路上,采用了少量网上比较坑的方法,或者多或者少都有雷区,其实showModalBottomSheet方法中的参数shape足以达到这个效果:

1575008323387025.gif

我们自己设置一个Shape,设置左上和右上圆角裁剪:

        shape: RoundedRectangleBorder(            borderRadius: BorderRadius.only(              topLeft: Radius.circular(20.0),              topRight: Radius.circular(20.0),            ),          ),

实现方法如下:

    void _showMenu(context, Menu menu) {        showModalBottomSheet(          shape: RoundedRectangleBorder(            borderRadius: BorderRadius.only(              topLeft: Radius.circular(20.0),              topRight: Radius.circular(20.0),            ),          ),          context: context,          builder: (context) => Column(            mainAxisAlignment: MainAxisAlignment.spaceAround,            mainAxisSize: MainAxisSize.max,            children: <Widget>[              Center(child: Text('Test')),            ],          ),        );    }
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Flutter定义圆角的BottomSheet

发表回复