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

科技公司网站制作模板啊里网站制作

科技公司网站制作模板,啊里网站制作,网站开发如何让图片加载的更快,微信网页版二维码失效一、先来看下实现的效果 实现上面的效果需要解决俩个问题 当列表进行向下滑动到顶部的时候#xff0c;继续滑动可以让弹窗向下收起来弹出上下拖动的时候#xff0c;视图内容跟着上下移动、缩放大小 二、实现弹窗上下滑动的时候#xff0c;动态改变内容区的位置和大小 通过…一、先来看下实现的效果 实现上面的效果需要解决俩个问题 当列表进行向下滑动到顶部的时候继续滑动可以让弹窗向下收起来弹出上下拖动的时候视图内容跟着上下移动、缩放大小 二、实现弹窗上下滑动的时候动态改变内容区的位置和大小 通过showModalBottomSheet显示底部对话框 showModalBottomSheet(context: context,isScrollControlled: true,backgroundColor: Colors.white,transitionAnimationController: _controller,builder: (_) {///省略部分代码...}, );1、那问题来了怎么去监听对话框当前显示的高度呢 可以发现showModalBottomSheet有一个transitionAnimationController参数这个就是对话框显示的动画控制器了值为[0,1]当全部显示是为1。 那么当将弹窗设为固定高度时就可以通过这个值进行计算了 假设我们顶部留的最小空间为宽度 屏幕宽度高度 屏幕宽度 / (16 / 9)那么对话框的高度就等与 屏幕高度 - 顶部高度 ///屏幕宽度 double get screenWidth MediaQuery.of(context).size.width; ///屏幕高度 double get screenHeight MediaQuery.of(context).size.height; ///顶部留的高度 double get topSpaceHeight screenWidth / (16 / 9); ///对话框高度 double get bottomSheetHeight screenHeight - topSpaceHeight;2、监听对话框高度改变 override void initState() {super.initState();_controller BottomSheet.createAnimationController(this);_controller.addListener(() {final value _controller.value * bottomSheetHeight;///更新UI_bottomSheetController.sink.add(value);}); }override Widget build(BuildContext context) {final bottom MediaQuery.of(context).padding.bottom;return ColoredBox(color: Colors.black,child: Stack(children: [StreamBuilderdouble(stream: _bottomSheetController.stream,initialData: 0,builder: (_, snapshot) {return Container(height: screenHeight - snapshot.data!,alignment: Alignment.center,child: Image.network(https://5b0988e595225.cdn.sohucs.com/images/20200112/75b4a498fdaa48c7813419c2d4bac477.jpeg,),);},),],),); }通过上面这样处理内容区的上移和缩小就已经实现了 三、弹窗内容向下滑动当滑动到顶继续向下滑动时可以让对话框继续向下滑动不打断此次触摸事件 这里借鉴了这位博主的解决方案可以先看一下https://www.jianshu.com/p/4f2d10750f5c 1、在向下滑动到顶继续向下的时候动态改变弹窗内部的高度来达到弹窗下拉的效果这里本来是想通过改变transitionAnimationController.value的值来改变弹窗的高度但是实际中发现或的效果不理想不知道为什么 override Widget build(BuildContext context) {return StreamBuilderdouble(stream: _dragController.stream,initialData: widget.height,builder: (context, snapshot) {return AnimatedContainer(height: snapshot.data ?? widget.height,duration: const Duration(milliseconds: 50),child: Column(children: [widget.pinedHeader ?? const SizedBox.shrink(),Expanded(child: Listener(onPointerMove: (event) {///没有滚动到顶部不处理if (_scrollController.offset ! 0) {return;}///获取滑动到顶部开始下拉的位置_startY ?? event.position.dy;final distance event.position.dy - _startY!;///弹窗滑动后剩余高度if ((widget.height - distance) widget.height) {return;}_dragController.sink.add(widget.height - distance);///剩余弹出高度所占百分比final percent 1 - distance / widget.height;///为了处理图片大小缩放需要使用widget.transitionAnimationController.value percent;},/// 触摸事件结束 恢复可滚动onPointerUp: (event) {_startY null;if (snapshot.data! widget.height * 0.5) {///下拉到了一半直接关闭widget.transitionAnimationController.animateTo(0,duration: const Duration(microseconds: 250));} else {///未到一半 恢复展示_dragController.sink.add(widget.height);widget.transitionAnimationController.animateTo(1,duration: const Duration(microseconds: 250));}},child: SingleChildScrollView(controller: _scrollController,physics: snapshot.data widget.height? const ClampingScrollPhysics(): const NeverScrollableScrollPhysics(),child: widget.child,),),),],),);},); }2、解决原理 使用Listener包裹底部可滚动组件然后监听用户的滑动当滑动到了最顶部且继续向下滑动就将SingleChildScrollView的physics设置为不可滚动同时改变内容的高度同时也要改变transitionAnimationController.value的值这样内容区才会跟着移动缩放最后在触摸结束的时候进行判断是需要收起弹窗还是关闭弹窗
http://www.pierceye.com/news/295282/

相关文章:

  • 承德网站制作与建设wordpress h5播放器
  • .net网站程序网站建设 报告
  • 中国做的电脑系统下载网站好互动网站
  • 网站使用培训方案网站后台工程师
  • 做网站优化找谁简单网站页面
  • 青岛做公司网站佛山网站建设锐艺传播
  • 江苏商城网站制作公司网站备案时间
  • 网站开发用到什么技术公司做影视网站侵权
  • 自己做网站大概多少钱唐山丰南建设局网站
  • 建设法律法规文本查询网站什么是建设型的网站
  • 如何设计一个购物网站如何免费网络营销推广
  • 网站制作服务好的商家做网站送的企业邮箱能用吗
  • 免费行情软件app网站排行企业内部网站如何建设
  • 沧州网络运营中心在哪里新的seo网站优化排名 网站
  • 米拓建站免费模板wordpress那个主题收录好
  • 网站后台中小型网站建设的基本流程
  • 一键做网站的软件爱互融网站开发合同
  • 平顶山市哪里有做网站的高端的扬中网站建设
  • 网站定制电话如何自己开公众号
  • app开发网站建设及开发专业济南网站建设价格
  • 网站建设新闻分享免费制作网站app
  • 海口网站建设高端wordpress 论坛那
  • 谁能帮我做网站百度推广登录平台怎么收费
  • 有关于网站建设的论文如何开发一个微信公众号
  • 深圳网站建制作网上写文章用什么软件
  • 网站模版自适应网站建设全包方案
  • 广州网站建设鞍山家电网站首页制作
  • 西安注册公司网站网站建设找a金手指
  • 浙江省住房和城乡建设厅网站打不开设计书籍频道开放说明
  • 阿里巴巴 网站建设遵义网警