Flutter 底部弹框 showModalBottomSheet 使用Demo
题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。
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相关推荐
- flutter 分割线_Flutter 底部弹框 showModalBottomSheet 使用Demo
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注 [x2] ...
- flutter 底部弹框 选择农历和阳历的日期和时间
最近在做一个万年历的项目,用到了选择出生日期加时辰,关键是还农历和阳历切换的,找了半天也没找到现成的,那就自己做一个吧,首先,效果如图 由于是初学的flutter,首次用flutter做项目,可能各方 ...
- Flutter 系统弹框
生成普通弹框 //其中build 定义返回widget ,所以可以自定义 showDialog(context: context, builder: builder) 生成底部弹框 showModal ...
- 微信小程序之底部弹框预约插件
代码地址如下: http://www.demodashi.com/demo/13982.html 一.前期准备工作: 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq. ...
- android 仿ios 底部弹出,项目需求讨论-仿ios底部弹框实现及分析
hi,在项目开发中,有时候需要仿照ios的底部弹框做效果,比如我们在iPhone上面关闭定位的时候,就会弹出ios特有的底部弹框: 屏幕快照 2017-10-09 08.20.30 PM.png 弹框 ...
- 小程序头像和昵称填写能力用底部弹框界面实现
最近,微信小程序又更新了文档,关于获取头像和昵称需要进行适配. https://developers.weixin.qq.com/community/develop/doc/00022c683e8a8 ...
- Axure如何制作app底部弹框,固定在底部
相信大家在日常的app原型绘制中,经常会遇到做底部弹框的功能,如果底部弹框会弹出不同的操作的话,这个时候大家就会使用动态面板进行原型制作,但是此时会存在一个问题,如果动态面板在不同的状态下高度不一样的 ...
- java安卓弹框样式_Android 实现抖音头像底部弹框效果的实例代码
布局文件 activity_test.xml android:layout_width="match_parent" android:layout_height="mat ...
- Android之底部弹框
文章链接: Android之底部弹窗 知识点: 1.dialog的简单使用: 2.自定义底部弹框: 3.新名词记录 { 5.0 转场动画 } 底部弹框:就是从手机屏幕底边位置弹出来,最常见的就是弹框里 ...
最新文章
- 判断某个点是否在不规则图形内
- BugKuCTF WEB 备份是个好习惯
- bulk批量下载影像
- 如何实现一个连接池?
- git reset hard/soft/mixed区别
- postman如何改成中文版_在 Windows 上如何用 Postman 重现 Dubbo 反序列化漏洞
- JMeter中使用“用户自定义变量”实现参数化
- Wirkshark表达式
- 瑞典正成为欧洲硅谷?
- linux命令大全文档,LINUX命令大全文档
- 在libvirt中使用SanLock
- CVPR 2022|群核前沿院等提出首个基于数据驱动的面检测算法
- ESP8285 ESP-AT编译流程和操作步骤
- [NOIP2016 提高组] 玩具谜题
- 打造地图拼接利器(五)地图采集与拼接
- VMware 搭建私有云
- [Python]使用QRCode生成彩色二维码
- 工地反光衣穿戴检测算法
- Java接口(笔记本USB接口案例)
- SIMPACK-学习记录-Doe相关
热门文章
- 新年开篇,一起成长,送书 7 本!TF + PyTorch方向
- php成品网站安装,PHPweb成品网站安装环境要求和安装方法
- 《python透明人士,他是凭什么成为主流编程的宠儿?!》Python基础简介及入门配置
- C++中 * *的用法与区别----实操才能看明白
- 从零开始编写深度学习库(二)FullyconnecteLayer CPU编写
- arctime必须要java_arctime教程:arctime字幕软件下载及安装
- 将之前写完的猜数字游戏改为通过javabean_42个宝宝益智游戏良心整理!让宝宝快人一步更聪明...
- php极差平级,平行志愿有级差吗志愿极差是什么
- java多因子认证,Milvus 实战|生物多因子认证系列 (二):人脸识别
- 51单片机按键计数器程序_51单片机是如何存储程序和数据的