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: [],),),);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络体系结构】计算机网络体系结构实验-DHCP实验

服务器ip地址 2. 服务器地址池 3. 客户端ip 4. ping Ipconfig

sed的介绍及应用

sed 文本三剑客之一 sed是一种流编辑器&#xff0c;一次处理一行内行。 如果只是展示&#xff0c;会放在缓冲区&#xff08;模式空间&#xff09;&#xff0c;展示结束之后&#xff0c;会从模式空间把操作结果删除。 工作模式&#xff1a;一行一行处理&#xff0c;处理完当前…

PyTorch(二)张量

#c 总结 张量总结 该文档主要熟悉了「张量」的概念&#xff0c;理解了「张量」在深度学习中扮演的重要角色&#xff0c;如何判断代码中哪些属于张量。其次熟悉了张量的「四种初始化」&#xff0c;以及「张量属性」&#xff0c;「张量操作」 1 张量概念 #d 张量 「张量&…

解决Visual Studio Code在Ubuntu上崩溃的问题

解决Visual Studio Code在Ubuntu上崩溃的问题 我正在使用Ubuntu系统&#xff0c;每次打开Visual Studio Code时&#xff0c;只能短暂打开一秒钟&#xff0c;然后就会崩溃。当通过终端使用code --verbose命令启动Visual Studio Code时&#xff0c;出现以下错误信息&#xff1a;…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验7 虚拟局域网VLAN

一、实验目的 1.学习如何划分VLAN&#xff1b; 2.验证划分VLAN的作用&#xff1b; 3.学习如何用命令行创建VLAN&#xff0c;将端口划分到VLAN&#xff0c;设置端口类型。 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&am…

mysql、pg的sql请求处理流程

mysql的sql请求处理流程 连接器 客户端发起 SQL 查询请求时,首先会经过连接器模块。连接器模块负责管理客户端与服务器端之间的 TCP/IP 连接。它会验证用户身份,如果认证通过,就建立连接并分配相应的线程资源。 授权器 连接成功后,授权器模块会根据用户权限,检查当前用户是…

cmake和Make的安装及配置

cmake和Make的安装及配置 安装 make 工具的步骤取决于你使用的操作系统。以下是不同操作系统上安装 make 工具的指南: 在 Linux 上安装 make 对于大多数 Linux 发行版,可以使用包管理器来安装 make。以下是一些常见的 Linux 发行版的安装命令: Ubuntu/Debian sh 复制代码…

3d中模型显示黑色给不了材质---模大狮模型网

如果3D模型显示黑色&#xff0c;而且无法给它添加材质&#xff0c;可能有以下几种原因&#xff1a; 一&#xff1a;模型没有UV贴图 UV贴图是3D模型表面纹理的一种方式&#xff0c;如果模型没有正确的UV贴图&#xff0c;渲染时可能会显示黑色。在大多数3D建模软件中&#xff0c…

Docker常见面试题整理

文章目录 1. Docker 是什么&#xff1f;它解决了什么问题&#xff1f;2. Docker 和虚拟机&#xff08;VM&#xff09;的区别是什么&#xff1f;3、Docker三个核心概念4、如何构建一个 Docker 镜像&#xff1f;5、如何将一个 Docker 容器连接到多个网络&#xff1f;6、Docker Co…

Flink nc -l -p 监听端口测试

1、9999端口未占用 netstat -apn|grep 99992、消息发送端 nc -l -k -p 9999 {"user":"ming","url":"www.baidu1.com", "timestamp":1200L, "score":1} {"user":"xiaohu","url":…

GIT 合拼

合拼有多种方式&#xff1a; 1&#xff09;合拼分支&#xff1a; git merge [source-branch] 2&#xff09;合拼提交 &#xff1a; git cherry-pick [commit-hash] 3&#xff09;合拼单个文件&#xff1a; git checkout [source-branch] – [file] 以上合拼&#xff0c;比如将分…

qml:一个基础的界面设计

文章目录 1、文章说明2、效果图3、重要代码说明3.1 组件切换开关下拉框矩形卡片 3.2 窗口最大化后组件全部居中3.3 菜单栏3.4 Repeater实现重复8行3.5 图片加载直接加载图片文本转图片FluentUI中可供选择的图标 1、文章说明 qt6.5.3 qml写的一个界面配置设计软件&#xff0c;目…

docker in docker 连私有仓库时报错 https

背景 jenkins 是使用 docker 方式部署的, 在 jenkins中又配置了 docker 的命令, 使用的宿主机的 docker 环境, 在jenkins 中执行 docker 相关命令的时候报错 jenkinse0e7b943b6e4:/$ docker login -u admin -p Harbor12345 172.16.100.15:80 WARNING! Using --password via t…

小白科普篇:详解Java对象的强引用、软引用、弱引用和虚引用

在Java中&#xff0c;有四种类型的引用&#xff0c;它们定义了对象被垃圾收集器(GC)处理的不同时机。这四种引用分别是&#xff1a; 强引用&#xff08;Strong Reference&#xff09;软引用&#xff08;Soft Reference&#xff09;弱引用&#xff08;Weak Reference&#xff0…

算法设计与分析:动态规划法求扔鸡蛋问题 C++

目录 一、实验目的 二、问题描述 三、实验要求 四、算法思想和实验结果 1、动态规划法原理&#xff1a; 2、解决方法&#xff1a; 2.1 方法一&#xff1a;常规动态规划 2.1.1 算法思想&#xff1a; 2.1.2 时间复杂度分析 2.1.3 时间效率分析 2.2 方法二&#xff1a;动态规划加…

Java面试题:解释Java的类加载过程,包括加载、链接和初始化阶段

Java的类加载过程是将类从其二进制表示&#xff08;通常是一个 .class 文件&#xff09;加载到JVM中并准备使用的过程。这个过程分为三个主要阶段&#xff1a;加载&#xff08;Loading&#xff09;、链接&#xff08;Linking&#xff09;和初始化&#xff08;Initialization&am…

python数据分析-糖尿病数据集数据分析预测

一、研究背景和意义 糖尿病是美国最普遍的慢性病之一&#xff0c;每年影响数百万美国人&#xff0c;并对经济造成重大的经济负担。糖尿病是一种严重的慢性疾病&#xff0c;其中个体失去有效调节血液中葡萄糖水平的能力&#xff0c;并可能导致生活质量和预期寿命下降。。。。 …

若依框架集成微信支付

1. 添加微信支付相关依赖 <!-- 微信支付 --> <dependency><groupId>com.github.wxpay</groupId><artifactId>wxpay-sdk</artifactId><version>0.0.3</version> </dependency> <dependency><groupId>com.gi…

微信小程序开发---自定义底部tabBar

自定义tabBar注意事项&#xff1a; 在自定义 tabBar 模式下 &#xff0c;为了保证低版本兼容以及区分哪些页面是 tab 页&#xff0c;app.json文件中 tabBar 的相关配置项需完整声明&#xff0c;但这些字段不会作用于自定义 tabBar 的渲染。所有 tabBar 的样式都由该自定义组件…

x86 汇编中的 “lock“ 指令详解

在深入理解 “lock” 指令之前&#xff0c;我们先来看一下 Qt 源代码中的一段 x86 汇编代码&#xff1a; q_atomic_increment:movl 4(%esp), %ecxlock incl (%ecx)mov $0,%eaxsetne %alret.align 4,0x90.type q_atomic_increment,function.size q_atomic_increment,.-q_atom…