当前位置: 首页 > news >正文

Flutter showModalBottomSheet用法

先搞一个DialogUtil工具类

import 'package:flutter/material.dart';class DialogUtil {static void showCommonBottomSheet(BuildContext context,Widget widget,{scrollControlled=false}){showModalBottomSheet(context: context,enableDrag:false,builder: (BuildContext context) {return widget;},isScrollControlled: scrollControlled,isDismissible: true,backgroundColor: Colors.white,elevation: 10.0,shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(20.0)),),);}
}

调用的时候scrollControlled属性要设置true,这样bottomSheet的弹窗可以滑动

 //填写取件码订单的bottomSheetvoid showPickUpCode() {DialogUtil.showCommonBottomSheet(context,InputPickUpCodeWidget(),scrollControlled: true,);}

InputPickUpCodeWidget是你自己定义的底部弹出框的布局控件,这里主要贴主要代码部分:

class InputPickUpCodeWidget extends StatefulWidget{InputPickUpCodeWidget({Key? key}):super(key: key);State<StatefulWidget> createState() {// TODO: implement createStatereturn InputPickUpCodeWidgetState();}}
class InputPickUpCodeWidgetState extends State<InputPickUpCodeWidget>{Widget build(BuildContext context) {//很重要,这个bottomSize必须有double bottomSize=MediaQuery.of(context).viewInsets.bottom;return AnimatedPadding(child: _buildMain(),padding: EdgeInsets.only(bottom: bottomSize),duration: const Duration(milliseconds: 100),);}//SingleChildScrollView必须有,不然bottomSheet页面有输入框的话,软键盘一弹出来,页面布局就溢出报错了,加个SingleChildScrollView就可以自己滑动了Widget _buildMain()=>SingleChildScrollView(child: Container(padding: const EdgeInsets.all(10),decoration: const BoxDecoration(color: Colors.white,borderRadius: BorderRadius.only(topLeft: Radius.circular(15),topRight: Radius.circular(15)),),//MainAxisSize.min很重要,必须设置,bottomSheet会自适应内容高度child: Column(mainAxisSize: MainAxisSize.min,mainAxisAlignment: MainAxisAlignment.start,children: [],),),);}

相关文章:

  • 粘包拆包服务器
  • openssl 命令行生成密钥对,生成hash,PSS填充签名,校验
  • x64汇编fastcall调用约定
  • 高阶图神经网络 (HOGNN) 的概念、分类和比较
  • 每月 GitHub 探索|10 款引领科技趋势的开源项目
  • 数学-奇异值
  • STM32通过SPI硬件读写W25Q64
  • MFC GDI绘制卡通人物
  • 长亭网络通信基础
  • LabVIEW、Matlab与Python的比较:从多角度详解三大编程工具
  • 网络安全:Web 安全 面试题.(文件上传漏洞)
  • WPF——属性
  • 案例分享:同为科技与军工项目合作
  • 多层感知器的进化:从基础到并行门控——深入探讨MLP变体的实现、优化与风险
  • 深度解析SD-WAN在企业组网中的应用场景
  • Google 是如何开发 Web 框架的
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6核心特性
  • exports和module.exports
  • nginx 配置多 域名 + 多 https
  • PAT A1050
  • Vue.js-Day01
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 关于字符编码你应该知道的事情
  • 官方解决所有 npm 全局安装权限问题
  • 解决iview多表头动态更改列元素发生的错误
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 如何合理的规划jvm性能调优
  • 三分钟教你同步 Visual Studio Code 设置
  • 学习Vue.js的五个小例子
  • No resource identifier found for attribute,RxJava之zip操作符
  • # SpringBoot 如何让指定的Bean先加载
  • #define 用法
  • (06)金属布线——为半导体注入生命的连接
  • (1)(1.11) SiK Radio v2(一)
  • (30)数组元素和与数字和的绝对差
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .naturalWidth 和naturalHeight属性,
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @Transactional 详解
  • [ Socket学习 ] 第一章:网络基础知识
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [].slice.call()将类数组转化为真正的数组
  • [android] 手机卫士黑名单功能(ListView优化)
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [C puzzle book] types