题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。


Flutter是谷歌推出的最新的移动开发框架。

【x1】微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注

【x2】各种系列的视频教程 免费开源 关注 你不会迷路

【x3】系列文章 百万 Demo 随时 复制粘贴 使用

【x4】五分钟视频快速带你浏览构建

【x5】一目了然的源码


如下图所示,你的APP项目中一定会应用到这样的场景,只不过是文案不一样而已。

页面的主体使用 Scaffold 来搭建,包括一个按钮与一个显示文本Text,代码如下:

class HomePage extends StatefulWidget{@overrideState<StatefulWidget> createState() {return _HomePageState();}}
class _HomePageState extends State<HomePage>{String resultMessage = "--";@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("测试底部弹框"),),//线性布局//子Widget 竖直方向排开body: Column(children: [//一个按钮OutlineButton(child: Text("点击打开弹框"),onPressed: (){showBottomSheet();},),//一个显示回调的文本Text(resultMessage),],),);}... ...
}

showModalBottomSheet 是Flutter中全局封装的一个快捷打开底部弹框的方法,通过 builder 构建弹框中的内容,代码如下:

 //显示底部弹框的功能void showBottomSheet() {//用于在底部打开弹框的效果showModalBottomSheet(builder: (BuildContext context) {//构建弹框中的内容return buildBottomSheetWidget(context);}, context: context);}

弹框中的内容 使用线性布局 Column 来构建,代码如下 :

Widget buildBottomSheetWidget(BuildContext context) {//弹框中内容  310 的调试return Container(height: 310,child: Column(children: [buildItem("微信登录","images/wx.png",onTap:(){setState(() {resultMessage = "微信登录";});}),//分割线Divider(),buildItem("QQ登录","images/qq.png",onTap:(){setState(() {resultMessage = "qq 登录点击";});}),//分割线Divider(),buildItem("天翼登录","images/tianyi.png",onTap:(){setState(() {resultMessage = "天翼登录 点击";});}),//分割线Divider(),buildItem("密码登录","images/password.png",onTap:(){setState(() {resultMessage = "密码登录 点击";});}),Container(color: Colors.grey[300],height: 8,),//取消按钮//添加个点击事件InkWell(onTap: () {Navigator.of(context).pop();},child: Container(child: Text("取消"),height: 44,alignment: Alignment.center,),)],),);}

每一行都类似,所以这里使用了封装的方式来构建,代码如下:

Widget buildItem(String title,String imagePath,{Function onTap}){//添加点击事件return InkWell(//点击回调onTap: (){//关闭弹框Navigator.of(context).pop();//外部回调if(onTap!=null){onTap();}},child: Container(height: 40,//左右排开的线性布局child: Row(//所有的子Widget 水平方向居中mainAxisAlignment: MainAxisAlignment.center,//所有的子Widget 竖直方向居中crossAxisAlignment: CrossAxisAlignment.center,children: [Image.asset(imagePath,width: 20,height: 20,),SizedBox(width: 10,),Text(title)],),),);
}

以小编的性格,要实现百万Demo随时复制粘贴肯定是需要源码的

完整源码在这里

当然以小编的性格,肯定是要有视频录制的,点击这里查看,有兴趣 你可以关注一下 西瓜视频 — 早起的年轻人

Flutter 底部弹框 showModalBottomSheet 使用Demo相关推荐

  1. flutter 分割线_Flutter 底部弹框 showModalBottomSheet 使用Demo

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注 [x2] ...

  2. flutter 底部弹框 选择农历和阳历的日期和时间

    最近在做一个万年历的项目,用到了选择出生日期加时辰,关键是还农历和阳历切换的,找了半天也没找到现成的,那就自己做一个吧,首先,效果如图 由于是初学的flutter,首次用flutter做项目,可能各方 ...

  3. Flutter 系统弹框

    生成普通弹框 //其中build 定义返回widget ,所以可以自定义 showDialog(context: context, builder: builder) 生成底部弹框 showModal ...

  4. 微信小程序之底部弹框预约插件

    代码地址如下: http://www.demodashi.com/demo/13982.html 一.前期准备工作: 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq. ...

  5. android 仿ios 底部弹出,项目需求讨论-仿ios底部弹框实现及分析

    hi,在项目开发中,有时候需要仿照ios的底部弹框做效果,比如我们在iPhone上面关闭定位的时候,就会弹出ios特有的底部弹框: 屏幕快照 2017-10-09 08.20.30 PM.png 弹框 ...

  6. 小程序头像和昵称填写能力用底部弹框界面实现

    最近,微信小程序又更新了文档,关于获取头像和昵称需要进行适配. https://developers.weixin.qq.com/community/develop/doc/00022c683e8a8 ...

  7. Axure如何制作app底部弹框,固定在底部

    相信大家在日常的app原型绘制中,经常会遇到做底部弹框的功能,如果底部弹框会弹出不同的操作的话,这个时候大家就会使用动态面板进行原型制作,但是此时会存在一个问题,如果动态面板在不同的状态下高度不一样的 ...

  8. java安卓弹框样式_Android 实现抖音头像底部弹框效果的实例代码

    布局文件 activity_test.xml android:layout_width="match_parent" android:layout_height="mat ...

  9. Android之底部弹框

    文章链接: Android之底部弹窗 知识点: 1.dialog的简单使用: 2.自定义底部弹框: 3.新名词记录 { 5.0 转场动画 } 底部弹框:就是从手机屏幕底边位置弹出来,最常见的就是弹框里 ...

最新文章

  1. 判断某个点是否在不规则图形内
  2. BugKuCTF WEB 备份是个好习惯
  3. bulk批量下载影像
  4. 如何实现一个连接池?
  5. git reset hard/soft/mixed区别
  6. postman如何改成中文版_在 Windows 上如何用 Postman 重现 Dubbo 反序列化漏洞
  7. JMeter中使用“用户自定义变量”实现参数化
  8. Wirkshark表达式
  9. 瑞典正成为欧洲硅谷?
  10. linux命令大全文档,LINUX命令大全文档
  11. 在libvirt中使用SanLock
  12. CVPR 2022|群核前沿院等提出首个基于数据驱动的面检测算法
  13. ESP8285 ESP-AT编译流程和操作步骤
  14. [NOIP2016 提高组] 玩具谜题
  15. 打造地图拼接利器(五)地图采集与拼接
  16. VMware 搭建私有云
  17. [Python]使用QRCode生成彩色二维码
  18. 工地反光衣穿戴检测算法
  19. Java接口(笔记本USB接口案例)
  20. SIMPACK-学习记录-Doe相关

热门文章

  1. 新年开篇,一起成长,送书 7 本!TF + PyTorch方向
  2. php成品网站安装,PHPweb成品网站安装环境要求和安装方法
  3. 《python透明人士,他是凭什么成为主流编程的宠儿?!》Python基础简介及入门配置
  4. C++中 * *的用法与区别----实操才能看明白
  5. 从零开始编写深度学习库(二)FullyconnecteLayer CPU编写
  6. arctime必须要java_arctime教程:arctime字幕软件下载及安装
  7. 将之前写完的猜数字游戏改为通过javabean_42个宝宝益智游戏良心整理!让宝宝快人一步更聪明...
  8. php极差平级,平行志愿有级差吗志愿极差是什么
  9. java多因子认证,Milvus 实战|生物多因子认证系列 (二):人脸识别
  10. 51单片机按键计数器程序_51单片机是如何存储程序和数据的