首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Flutter 实战】1.20版本更新及新增组件

老孟导读:Flutter 1.20 更新了 Slider、RangeSlider、日期选择器组件、时间选择器组件的样式,新增了交换组件:InteractiveViewer,下面详细介绍其用法。...onChanged:滑块值改变时回调。 ? 看看 Flutter 1.20 版本以前的样式(我的珍藏): ? 明显的感觉就是滑块轨道变粗了,滑块变的更有立体感(加了阴影)了。...1 :轨道(Track),1 和 4 是有区别的,1 指的是底部整个轨道,轨道显示了可供用户选择的范围。对于从左到右(LTR)的语言,最小值出现在轨道的最左端,而最大值出现在最右端。...InteractiveViewer InteractiveViewer 是 Flutter 1.20 新增的组件,用户可以通过拖动以平移、缩放和拖放子组件。...参数表示组件树中的约束是否应用于子组件,默认为true,如果设为true,表示子组件是无限制约束,这对子组件的尺寸比 InteractiveViewer 大时非常有用,比如子组件为滚动系列组件。

5.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter实现电影院选座效果!

    我们只需重写两个InteractiveViewer,一个为主组件(座位表),一个为从组件(导航条),并开放InteractiveViewerState,当座位表组件回调手势的三个方法时,通过key将三个方法的参数传入导航条组件就...首先, 明确座位表的显示区域是包含底部弹框的,因为底部弹框是悬浮在座位表上面的,那么我们就只能使用margin而不是padding,所以根据设计图底部弹框的height,我们将marginBottom设成这个...上面代码中有一段算法被我注释掉了,这段代码的效果是: 当InteractiveViewer中的child已经完全显示的时候,则无法再缩小,即minScale不仅仅取决于我们设置的值,还取决于InteractiveViewer...初始放大倍数 如上面的效果图, 在第一次进入或横竖屏切换时,当座位表布局过多(默认显示不下时),尽可能缩小以显示更多的内容(下限缩小至minScale),当座位表布局过少(默认显示时屏幕很空),尽可能放大直至显示满屏幕...-竖屏时底部悬浮框的height(横屏悬浮框如果不在底部,则为0)-标题栏高度以及自己加的一些其他布局的高度。

    1.6K30

    Flutter实现电影院选座效果!

    我们只需重写两个InteractiveViewer,一个为主组件(座位表),一个为从组件(导航条),并开放InteractiveViewerState,当座位表组件回调手势的三个方法时,通过key将三个方法的参数传入导航条组件就...首先, 明确座位表的显示区域是包含底部弹框的,因为底部弹框是悬浮在座位表上面的,那么我们就只能使用margin而不是padding,所以根据设计图底部弹框的height,我们将marginBottom设成这个...上面代码中有一段算法被我注释掉了,这段代码的效果是: 当InteractiveViewer中的child已经完全显示的时候,则无法再缩小,即minScale不仅仅取决于我们设置的值,还取决于InteractiveViewer...初始放大倍数 如上面的效果图, 在第一次进入或横竖屏切换时,当座位表布局过多(默认显示不下时),尽可能缩小以显示更多的内容(下限缩小至minScale),当座位表布局过少(默认显示时屏幕很空),尽可能放大直至显示满屏幕...-竖屏时底部悬浮框的height(横屏悬浮框如果不在底部,则为0)-标题栏高度以及自己加的一些其他布局的高度。

    1.6K10

    flutter鸿蒙版本通过底部导航栏的实现熟悉架构及语法

    写在前面 在这篇博客中,我们将深入分析一个 Flutter 应用的完整代码,该应用实现了一个底部导航栏,允许用户在不同页面之间切换。...实现状态类 class _HomePageState extends State { int _selectedIndex = 0; // 当前选中的底部导航项 // 页面列表...当用户点击某个导航项时,这个方法会被调用,并通过 setState 方法更新 _selectedIndex,触发界面重建,从而显示新选中的页面。 6....顶部应用栏 appBar 属性设置了应用的顶部导航栏,显示了应用的标题。 显示页面 body 属性通过 _pages[_selectedIndex] 动态显示当前选中的页面。...Flutter 应用,包含了底部导航栏,可以在不同页面之间进行切换。

    10310

    flutter上拉抽屉效果 flutter拖动抽屉效果

    ,也可配置关闭这个功能; 2、 抽屉关闭状态时,向上滑动,滑动过一定的高度时自动向上滑动打开,当没有滑动过一定的高度时,自动向下滑动,呈关闭状态; 3、 抽屉打开状态时,当滑动视图处于顶部时,向下滑动,...抽屉自动向下滑动关闭,可配置形状是否开启这个功能 4、 抽屉打开状态时,当向下滑动抽屉时,没有滑动到一定的距离时放开,抽屉会自动向上滑动回到打开状态,当滑动到一定的距离时放开,抽屉会自动向下滑动到关闭状态...(); ///打开抽屉 dragController.open(); buildDragWidget方法就是用来创建DragContainer 抽屉组件的方法, ///构建底部对齐的抽屉效果视图...默认0.4 maxChildRate: 0.4, ///是否显示默认的标题 isShowHeader: true, ///背景颜色...( ///列表的控制器 与抽屉视图关联 controller: scrollController, ///需要注意的是这里的控制器需要使用 ///builder

    3.4K51

    Flutter可滑动组件

    在Flutter中,我们也有对应的列表Widget,就是ListView。 注意:在Flutter里面想要实现滑动效果,都需要在组件外部包裹滚动的视图。...当列表滚动到具体的index位置时,会调用该构建器构建列表项。 itemCount:列表项的数量,如果为null,则为无限列表。...比如视图滚动到底部时,我们可能希望做上拉加载更多;比如滚动到一定位置时显示一个回到顶部的按钮,点击回到顶部的按钮,回到顶部;比如监听滚动什么时候开始,什么时候结束; 在Flutter中监听滚动相关的内容由两部分组成...当滚动到1000位置的时候,显示一个回到顶部的按钮: class HomePage extends StatefulWidget { const HomePage({Key?...该回调可以返回一个布尔值,代表是否阻止该事件继续向上冒泡,如果为true时,则冒泡终止,事件停止向上传播,如果不返回或者返回值为false 时,则冒泡继续。

    7.2K30

    flutter 起步

    (WidgetsApp不支持)debug模式下是否显示材质网格,传入bool类型18. showPerformanceOverlay当为true时应用程序顶部覆盖一层GPU和UI曲线图,可即时查看当前流畅度情况...19. checkerboardRasterCacheImages当为true时,打开光栅缓存图像的棋盘格20. checkerboardOffscreenLayers当为true时,打开呈现到屏幕位图的层的棋盘格...21. showSemanticsDebugger当为true时,打开Widget边框,类似Android开发者模式中显示布局边界22. debugShowCheckedModeBanner当为true...时,在debug模式下显示右上角的debug字样的横幅,false即为不显示Scaffold 有下面几个主要属性:appBar - 显示在界面顶部的一个 AppBar。...toolbarOpacity → double1.BottomNavigationBarType.fixed:(代表tab固定不变,也是默认格式)(1).底部tab数: 不超过4个(2).导航栏背景色,

    4.5K20

    Flutter 双向聊天列表效果进阶优化

    聊天列表是一个很扣细节的场景,在之前的 《Flutter 实现完美的双向聊天列表效果,滑动列表的知识点》 里,通过 CustomScrollView 和配置它的 center 从而解决了数据更新时的列表跳动问题...结合这个问题,这里可以发现关键的点就在于 reverse ,而对比微信和QQ的聊天列表需求,在没有数据时,消息数据应该是从顶部开始,所以这时候就需要我们调整列表实现,参考微信/QQ 的实现模式。...image 如下图所示,调整后从结构上变成了右边的逻辑: 数据起始锚点在页面顶部,所以不会存在顶部留空问题; 在 center 下面的 SliverList 按照正向排序正常显示,用于显示新数据; 在...还有什么可以优化的小技巧? 比如增加判断列表是否处于底部,决定在接受到新数据时是否滑动到最新消息。...是否为 0 ,就可以判断列表是不是处于底部 ,从而针对场景首先不同的业务逻辑,例如下图所示,针对列表是否处于底部,在接收到新数据时是直接跳到最新数据,还是弹出提示用让用户点击跳转。

    65340

    【Flutter 专题】图解 ListView 下拉刷新与上拉加载 (二)

    和尚上次尝试 ListView 异步加载列表数据时,用了三方库 flutter_refresh,这种方式使用很简单。但列表数据的加载也绝非一种,和尚这次准备用原生尝试一下。...和尚在测试过程中每次滑动一下列表都会调用一次接口,因为在监听过程中若不做任何处理只要列表滑动便会进行监听,和尚的解决的方式有两种; 监听滑动到底部再进行业务操作调用接口,如问题一中的判断; bool dataNotification...的惰性创建的滚动视图的滚动偏移。...它跟踪最近更新的滚动位置,并将其报告为其初始滚动偏移量。且在非底部时 maxScrollExtent 和 offset 值会相等。使用该类监听时更灵活,有些操作并非到底部才会进行处理等。...和尚以前对列表的处理只包括列表数据为 0 时展示 Loading 等待页,有数据时展示数据列表,但是对于其他异常情况没有处理,这次特意添加上异常页面,这仅仅是业务方面的添加,没有新的技术点。 ?

    1K21

    Flutter 全栈式——页面框架

    checkerboardRasterCacheImages bool 为true时,打开光栅缓存图像的棋盘格 checkerboardOffscreenLayers bool 为true时,打开棋盘格层...showSemanticsDebugger bool 为true时,打开Widget边框,显示布局边界 debugShowCheckedModeBanner bool 为true时,在debug模式下显示右上角的...默认为 ThemeData.scaffoldBackgroundColor bottomNavigationBar Widget 显示在底部的导航栏 bottomSheet Widget 底部永久性显示的提示框...resizeToAvoidBottomInset bool 页面浮动控件部分自动调整,以避免被弹出键盘所遮盖,默认为true primary bool 是否填充顶部栏,默认为true drawerDragStartBehavior...,但延伸的位置是AppBar AppBar AppBar可以显示顶部leading、title和actions等内容。

    2.9K30

    Flutter完整开发实战详解(二、 快速开发实战篇)

    页面效果   既然底部Tab页面都实现了,干脆顶部tab页面也一起完成。如下代码,和底部Tab页的区别在于: 底部tab是放在了 Scaffold 的 bottomNavigationBar 中。...同时我们在顶部 TabBar 增加 isScrollable: true 属性,实现常见的顶部Tab的效果,如下方图片所示。...的头部 ///列表数量大于0时,因为头部和底部加载更多选项,需要对列表数据总数+2 return (control.dataList.length > 0) ?...= 0) { ///如果不需要头部,并且数据不为0,当index等于数据长度时,渲染加载更多Item(因为index是从0开始) return _buildProgressIndicator...矢量图标库是引入 ttf 字体库文件实现,在 Flutter 中通过 Icon 控件,加载对应的 IconData 显示即可。

    5.2K10

    谈谈flutter中Checkbox复选框的全选与删除【flutter20个实例之三】

    然后可以全选,取消,单选,删除,再次点击编辑后隐藏复选框样式 主要功能分为以下四个模块,顶部导航栏也就是appbar组件、叠加stack组件、显示隐藏offstage组件、列表listview组件 ?...2.我们先初始化一下数据,设置顶部信息栏的显示效果 appbar的右侧设置一个编辑按钮,增加点击事件,重置选中的ID和复选框样式 appbar的相关功能可以参考初识顶部导航栏【flutter20个实例之一...当我们点击右上角的编辑时,调出底部的全选和删除操作,但是这个底部样式不随着列表一起滚动 所以我们需要用叠加组件stack将两部分功能包含在一起,同时底部的样式要固定在底部 列表的内容样式可以扩散开发,...getItemBottom(),//这里是底部删除全选操作的内容 ], ), ); } 4.底部全选和删除的样式 底部有显示隐藏的逻辑...,左侧放我们的复选框,右侧是列表数据 注意的是:内容里面的复选框padding,要和底部操作条的padding设置一致,看起来是对齐的 内容列表中的复选框点击的时候: 如果状态为true,判断deleteIds

    3.6K30

    《Flutter》-- 6.高级组件

    参阅书籍: 《Flutter跨平台开发入门与实践》-- 向治洪(著) 6. 高级组件 6.1 可滚动组件 对于列表和长布局的显示溢出问题,可以使用Flutter提供的可滚动组件来处理。...bool primary,//是否是与父级关联的主滚动视图 this.physics,//设置滚动效果 this.controller,//控制滚动位置,当primary为true时,controller...= true,//是否保持滚动位置 this.debugLabel, }) 当keepScrollOffset的属性值为true时,可滚动组件的滚动位置会被存储到PageStorage中,当可滚动组件重新创建时可以使用...:视图窗口内部长度,大小等于屏幕显示的列表长度; extentAfter:列表中未滑入视图窗口部分的长度; atEdge:是否滚动到了可滚动组件的边界。...bool addAutomaticKeepAlives = true,//是否将列表项包裹在AutomaticKeepAlive组件中,默认值为true,表示列表项滑出视图窗口时不会被垃圾回收,会保存之前的状态

    10.7K20

    UITableView在Flutter中是什么?

    那么,当这些基本元素的排列布局超过屏幕显示尺寸(即超过一屏)时,我们就需要引入列表控件来展示视图的完整内容,并根据元素的多少进行自适应滚动展示。...当列表滚动到相应位置时,ListView会调用该方法创建对应的子Widget。 itemCount,表示列表项的数量,如果为空,则表示ListView为无限列表。...这时,各自视图的滚动和布局模型就是相互独立、分离的,就很难保证整个页面统一一致的滑动效果。 那么,Flutter是如何解决多ListView嵌套时,页面滑动效果不一致的问题的呢?...接下来我们考虑一个更加复杂的问题:在某些情况下,我们希望获取视图的滚动信息,并进行相应的控制。比如,列表是否已经滑到底(顶)了?如何快速回到列表顶部?列表顶部是否已经开始,或者是否已经停下来了?...如下代码所示,我们声明了一个有着100个元素的列表项,当滚动视图到特定位置后,用户可以点击按钮返回到列表顶部: 首先,我们在State的初始化方法里,创建了ScrollController,并通过_controller.addListener

    5.6K10

    使用 Android Studio 进行 Flutter 开发

    ” 找到选择目标下拉按钮,点击它会显示出可用设备列表。 选择你希望启动应用的设备。当连接设备或启动模拟器时, 列表中将会加入新选项。...点击工具栏中的 Debug 按钮,或选择 Run > Debug。 底部的 Debugger 窗口会显示出堆栈和变量信息。 底部的 Console 窗口会显示详细的日志输出。...显示性能数据 “检查 Flutter 里的性能问题,请查看时间线视图文档。...当光标放在 Flutter widget 上时,黄色灯泡图标会指示可用的修改, 可以通过点击灯泡进行修改, 或使用键盘快捷键(在 Linux 和 Windows 上使用 Alt+Enter,在 macOS...你会在编辑器的顶部看到一个 "Flutter commands" 的横幅, 包含一个 Open for Editing in Android Studio 的标签,点击它。

    6.5K30

    10 个派上用场的 Flutter 小部件

    10 个派上用场的 Flutter 小部件 尝试学习一门新语言可能会令人恐惧和厌烦。很多时候,我们希望我们知道早先存在的某些功能。...在今天的文章中,我将告诉你我希望早点知道的最方便的几个Flutter小部件。 Spacer Spacer 创建一个可调整的空白空间,它占据 Flex 容器中小部件之间的任何剩余空间,例如行或列。...当孩子被过度滚动时,动画圆形进度指示器会淡入视图并调用未来来更新可滚动的内容。...它提供了有用命名的构造函数,例如旋转、缩放和平移,以便快速实现。 InteractiveViewer 在小部件上引入缩放、平移、拖动和捏合功能的最简单方法。它可以根据您的需要高度定制。...,让我们为更好的使用Flutter加油吧。

    1.3K20

    干货 | Flutter在携程复杂业务的高性能之旅

    通过Flutter Performance查看组件渲染次数,发现整个界面都在刷新,当我们多次滑动页面后,发现很多组件都渲染了多次,如下图所示: 通过DevTools,在滑动改变顶部的透明度时,发现FPS...当改变顶部悬浮组件的时候,只需要改变顶部组件状态,而没有必要刷新整棵树。...酒店详情页的头部header,跟随页面的滚动需要实时的计算当前的透明度,滑动到最顶部的时候全透明显示,滑动出头部图片显示区域的时候则完全显示出来,并且在界面滑动的过程中需要监听每个对应模块滑动的偏移量,...,处理展示列表页数据 return; } } // 正常加载数据} 4.3 分页预加载 通常情况下当用户滑动到底部的时候才会去加载下一页的数据,这样用户要花费等待加载的时间,影响用户体验...,在刷新列表时要取消掉还未返回数据的请求。

    1.6K20
    领券