Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

news2025/3/1 1:47:47

一、先来看下实现的效果

  • 实现上面的效果需要解决俩个问题
    • 当列表进行向下滑动到顶部的时候,继续滑动可以让弹窗向下收起来
    • 弹出上下拖动的时候,视图内容跟着上下移动、缩放大小

二、实现弹窗上下滑动的时候,动态改变内容区的位置和大小

  • 通过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、监听对话框高度改变


void initState() {
   
  super.initState(

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

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

相关文章

手写签名到背景上合为1张图

手写签名到背景上合为1张图 package.json中 "signature_pad": "3.0.0-beta.3"<template><div class"home"><canvas id"canvas" width"500" height"300"></canvas><button click"…

2.安装opencv报错及解决方法

目录 报错1&#xff1a;anaconda-lab命令不是内部外部指令 报错2&#xff1a; 找不到opencv模块,ModuleNotFoundError: No module named cv2 报错3&#xff1a;python版本号不匹配&#xff0c;Could not find a version that satisfies the requirement 报错1&#xff1a;anac…

我的创作纪念日—谈谈我的学习经历

引言 在这段时间里&#xff0c;我创作了一系列关于Java编程的博客文章。通过这个过程&#xff0c;我不仅增加了对Java编程的理解&#xff0c;还提高了我的博客创作技能。在本文中&#xff0c;我想分享一些我在博客创作过程中学到的心得体会和经验 机缘与巧合 其实很早我就有写笔…

Macs Fan Control 1.5.16 Pro for mac风扇调节软件

Macs Fan Control是一款专门为 Mac 用户设计的软件&#xff0c;它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度&#xff0c;以提高设备的散热效果&#xff0c;减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温度和…

浅谈推进农业水价综合改革的意见解读

摘 要&#xff1a;农业是用水大户&#xff0c;也是节水潜力所在。在我国水资源短缺的背景下&#xff0c;推进农业水价综合改革&#xff0c;建立促使水资源节约的价格政策和准确计量收费机制是农业节水的必然要求&#xff0c;设计一套农田灌溉计量收费管理系统&#xff0c;对改良…

【计算机基础知识8】深入理解OSI七层模型

目录 一、前言 二、OSI七层模型概述 三、第一层&#xff1a;物理层 四、第二层&#xff1a;数据链路层 五、第三层&#xff1a;网络层 六、第四层&#xff1a;传输层 七、第五层&#xff1a;会话层 八、第六层&#xff1a;表示层 九、第七层&#xff1a;应用层 十、O…

公式trick备忘录

增大不同class feature之间的距离用hinge loss 相关&#xff0c; similarity learning, svm https://www.youtube.com/watch?vQtAYgtBnhws https://www.youtube.com/watch?vbM4_AstaBZo&t286s

Achronix与您相约“2023全球AI芯片峰会”

2023全球AI芯片峰会&#xff08;GACS 2023&#xff09;将于9月14-15日在深圳市深圳湾万丽酒店举行。峰会由智一科技旗下芯东西联合智猩猩&#xff08;智东西公开课全新品牌&#xff09;联合发起主办&#xff0c;以「AI大时代 逐鹿芯世界」为主题。 届时&#xff0c;Achronix将…

手把手教程:Deepin 23安装GitLab CE

一、安装GitLab 1.1 准备 系统我选择深度Deepin 23&#xff1a; Index of /releases/23-Beta/https://cdimage.deepin.com/releases/23-Beta/ 注意&#xff1a;Deepin 20.9安装GitLab CE 16.3会报错 GitLab CE选择当前最新版本&#xff1a; gitlab/gitlab-ce …

基因融合与癌症研究gene fusions in cancer

基因融合与癌症研究简历史(截止到2015年) Major discoveries from research on gene fusions and cancer 主要肿瘤亚型涉及的基因融合数量 Number of gene fusions involved in major neoplasia subtypes 恶性疾病中基因融合相关FDA批准药物 FDA-approved drugs targeting…

freeswitch sofia协议栈调试

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 fs内部使用sofia的sip协议栈&#xff0c;本文介绍如何调试跟踪sofia协议栈。 环境 centos&#xff1a;CentOS release 7.0 (Final)或以上版本 freeswitch&#xff1a;v1.10.7 GCC&#xff1a;4.8.5 调试接口 sof…

linux使用stress命令进行压力测试cpu

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

看!亚马逊测评的隐藏宝藏!

亚马逊测评对卖家的优势显著&#xff0c;然而&#xff0c;许多卖家仍仅仅将测评理解为增加销售数量及对产品订单的简要评价。然而&#xff0c;运营高手已将其视为关键的运营工具。 亚马逊测评的功能不仅限于提高销售数量和生成正面评价。它还包括进行QA、点赞、Rating和Feedba…

怎么把pdf合并成一个pdf?认准这几个合并方法

怎么把pdf合并成一个pdf&#xff1f;在许多工作场合&#xff0c;我们需要处理大量的PDF文件。有时&#xff0c;我们需要将这些文件合并成一个文件&#xff0c;以便更好地管理和查看它们。这样可以避免我们在查找特定文件时需要浏览多个文件夹&#xff0c;从而节省时间和提高工作…

spring的事务隔离级别

一&#xff0c;spring支持的常用数据库事务传播属性和事务隔离级别 事务的传播行为&#xff1a;一个方法在运行了一个开启事务的方法中时&#xff0c;当前方法是使用原来的事务还是开启一个新的事务。 事务传播的行为有传播属性指定&#xff0c;Spring定义了7中类传播行为&…

LAN9252芯片控制资料

一&#xff0c;整个ethercat项目开发流程 通过STM32相关学习板&#xff0c;理解EtherCAT协议栈和通信步骤。根据项目需求构建XML&#xff0c;该XML将会由TwinCAT2解析&#xff0c;将相关特STM32程序烧写&#xff0c;修改应用层协议的程序。STM32作为SPI主模式与ZYNQ LAN9252进行…

咪蒙团队转型做短剧行业,年收入近2个亿

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 很多人不知道咪蒙是谁&#xff0c;他曾经是公众号时代的no.1&#xff0c;她发一篇带广告的推文大几十万, 那个时候不知道带动多少人去做公众号,2019年发表不恰当文章而被封禁。 但最近我看到一则新…

ABAP BAPI_ACC_DOCUMENT_POST 中 EXTENSION1的用法

BAPI_ACC_DOCUMENT_POST 在过账会计凭证时候&#xff0c;经常会发现一些标准字段在参数中并没有 可以通过CMOD/SMOD增强出口--》ACBAPI01--》EXIT_SAPLACC4_001--》ZXACCU15 示例代码&#xff1a; DATA: wa_extension TYPE bapiextc,it_extension TYPE STANDARD TABLE OF ba…

Adobe Acrobat Reader界面改版 - 解决方案

问题 日期&#xff1a;2023年9月 Adobe Acrobat Reader下文简称Adobe PDF Reader&#xff0c;此软件会自动进行更新&#xff0c;当版本更新至2023.003.20284版本后。 软件UI界面会大改版&#xff1a;书签页变成了右边、工具栏变到了左边、缩放按钮变到了右下角&#xff0c;如…

Voxel R-CNN:基于体素的高性能 3D 目标检测

论文地址&#xff1a;https://arxiv.org/abs/2012.15712 论文代码&#xff1a;https://github.com/djiajunustc/Voxel-R-CNN 论文背景 基于点的方法具有较高的检测精度&#xff0c;但基于点的方法通常效率较低&#xff0c;因为对于点集抽象来说&#xff0c;使用点表示来搜索最…