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

Flutter入门指北(Part 8)之Sliver 组件及NestedScrollView

SliverToBoxAdapter 还记得上节最后的代码中,有使用 SliverToBoxAdapter 这个部件吗,这个部件只需要传入一个 child 属性。...不过 Flutter 也提供了专门的部件 SliverPadding 使用方式同 Padding,但是需要传入一个 sliver 作为子类。...SliverPersistentHeader Flutter 中,为我们提供了这么一个作为头部的部件 SliverPersistentHeader,这个部件可以根据滚动的距离缩小高度,有点类似 SliverAppBar...糟透了的翻译 X 1:一个内部能够嵌套其他滚动部件,并使其滚动位置联结到一起的滚动部件 /// The most common use case for this widget is a scrollable...接着请注意代码中的那段 assert 中的文字 糟透了的翻译 X 5:sliverOverlapAbsorberHandleFor 传入的参数 context 中必须包含 NestedScrollView

2.2K30

Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh

它支持几乎所有的 Flutter 可滚动小部件。它的功能与Android 的 SmartRefreshLayout 非常相似,并吸收了许多第三方库的优点。...2、特征 EasyRefresh具有以下特性: 支持所有可滚动小部件 滚动物理范围,完全匹配可滚动小部件 集成多个酷页眉和页脚样式 支持自定义样式,实现各种动画效果 支持下拉刷新和上拉加载(可通过控制器触发和完成...) 支持指示器位置设置,结合监听器可以放置在任意位置 支持页面启动时刷新,并可自定义视图 支持安全区域,不会遮挡内容 可自定义滚动参数,允许列表具有不同的滚动反馈和惯性 3、在线演示 https://xuelongqy.github.io...false, position: widget.indicatorPosition, // 下面是一些文本配置 // processingText: "加载中...", // processedText: "加载成功", // readyText: "加载中...

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

    Flutter 首页必用组件NestedScrollView

    老孟导读:昨天Flutter 1.17版本重磅发布,新的版本主要是优化性能、修复bug,有人觉得此版本毫无亮点,但也从另一方面体现了Flutter目前针对移动端已经较为完善,想了解具体内容,文末有链接,...今天介绍的组件是NestedScrollView,大部分的App首页都会用到这个组件。 NestedScrollView 可以在其内部嵌套其他滚动视图的组件,其滚动位置是固有链接的。...在普通的ScrollView中, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反的方向滚动(例如,允许用户在标签所代表的页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollView中的SliverAppBar折叠以展开。...滚动隐藏AppBar 比如实现如下场景,当列表滚动时,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context

    4.3K10

    不一样角度带你了解 Flutter 中的滑动列表实现

    本篇主要帮助剖析理解 Flutter 里的列表和滑动的组成,用比较通俗易懂的方式,从常见的 ListView到 NestedScrollView 的内部实现,帮助你更好理解和运用 Flutter 里的滑动列表...「本篇不是教你如何使用 API ,而是一些日常开发中不常接触,但是很重要的内容」。...RenderSliver 我们都知道 Flutter 中的整体渲染流程是 Widget -> Element -> RenderObejct -> Layer 这样的过程,而 「Flutter 里的布局和绘制逻辑都在...最后在 _NestedScrollCoordinator 的 drag 和 applyUserOffset 等方法里进行内外滚动的分配; image.png SliverPersistentHeader...所以如果这时候不额外做一些处理,那么对于 body 而言,它的 paintOrigin 还是从最顶部开始而不是固定区域的下方。

    1.1K30

    不一样角度带你了解 Flutter 中的滑动列表实现

    本篇主要帮助剖析理解 Flutter 里的列表和滑动的组成,用比较通俗易懂的方式,从常见的 ListView 到 NestedScrollView 的内部实现,帮助你更好理解和运用 Flutter 里的滑动列表...本篇不是教你如何使用 API ,而是一些日常开发中不常接触,但是很重要的内容。...RenderSliver 我们都知道 Flutter 中的整体渲染流程是 Widget -> Element -> RenderObejct -> Layer 这样的过程,而 Flutter 里的布局和绘制逻辑都在...最后在 _NestedScrollCoordinator 的 drag 和 applyUserOffset 等方法里进行内外滚动的分配; ?...所以如果这时候不额外做一些处理,那么对于 body 而言,它的 paintOrigin 还是从最顶部开始而不是固定区域的下方。 ?

    2.2K51

    踩坑记 | Flutter升级影响了NestedScrollView?

    ),在新的班车中,出现了偶现的滑不动问题。...在 Flutter 1.17 中,flutter create 命令只有 --androidx 这一个选项。...androidx.fragment、lifecycle和annotation给拉过来了,导致androidx.core也从1.0.0变成了1.1.0,查阅core版本发布,在1.1.0的变更里有一行: 添加了嵌套滚动改进...v3变更内容 1.1.0中NestedScrollView实现的接口从v2变成了v3,v3接口又加了一个方法, interface NestedScrollingChild3 extends NestedScrollingChild2...阻断依赖可能造成类丢失,但编译期能及时发现(如果有人用反射去调一个野生类,是不是就发现不了了);而不阻断呢,又可能引入一些高版本的库,导致无法预测的问题。

    82220

    踩坑记 | Flutter升级影响了NestedScrollView?

    ),在新的班车中,出现了偶现的滑不动问题。...在 Flutter 1.17 中,flutter create 命令只有 --androidx 这一个选项。...androidx.fragment、lifecycle和annotation给拉过来了,导致androidx.core也从1.0.0变成了1.1.0,查阅core版本发布,在1.1.0的变更里有一行: 添加了嵌套滚动改进...v3变更内容 1.1.0中NestedScrollView实现的接口从v2变成了v3,v3接口又加了一个方法, interface NestedScrollingChild3 extends NestedScrollingChild2...阻断依赖可能造成类丢失,但编译期能及时发现(如果有人用反射去调一个野生类,是不是就发现不了了);而不阻断呢,又可能引入一些高版本的库,导致无法预测的问题。

    97800

    StatefulWidget的使用案例

    在Flutter中,自定义组件其实就是一个类,这个类继承自StatelessWidget/StatefulWidget。 StatelessWidget是无状态组件,状态不可变的Widget。...StatefulWidget是有状态组件,持有的状态可能在Widget生命周期改变。也就是说,如果我们想改变页面中的数据,那么就需要用到StatefulWidget。...首先我们在VSCode中安装一个名为“Awesome Flutter Snippets”的插件,该插件提供了Flutter中各种常用的类和方法的快速构建方式,可以极大地提升开发效率,如下所示: 捷径...自定义剪辑 用于创建自定义形状 customPainter 自定义画家 用于创建自定义绘画 listViewB ListView.Builder 创建按需创建的可滚动的线性小部件数组...inheritedW 继承的小部件 用于沿窗口小部件树传播信息的类。 mounted 安装 此State对象当前是否在树中。

    3.3K20

    聊聊Android嵌套滑动

    在嵌套滑动控件的场景中,可以在Android的事件分发机制本身做一些处理,外部拦截或者内部消化触摸事件。...、 RecyclerView ) 中,开始嵌套滑动都依赖NestedScrollingChildHelper 这个对象。...如果是其他手势,滑动的时候拦截,不滑动的时候不拦截。如果滑动的时候不拦截的话,手势事件会交给子view去处理,如果子view是可以滚动的,这时候就会有冲突,所有滚动的时候事件要拦截下来交给自己处理。...接着分发嵌套滚动事件,中间还有一些针对 Scroll mode的处理,我们这里不关心: UP 的时候会根据距离判断是否需要消费快速滑动,如果不则会进行分发: 所以我们需要关注的就是: startNestedScroll...例如上图的,当dy大于0,说明是向上滑动,如果最新的top值比展开的状态坐标小,那么就把状态置为 STATE_EXPANDED , 然后调用 offsetTopAndBottom 做距离上的变换。

    1.3K10

    Flutter 1.22 正式发布

    新主题遵循Flutter最近在新Material窗口小部件中采用的“规范化”模式。如果您想玩演示,DartPad上有一个很棒的演示。...这个想法是要在导航和Flutter的其余部分之间统一模型,同时解决许多问题并添加功能。实际上,这个小例子几乎不涉及Navigator 2.0的内容。...预览:平滑滚动以提供不匹配的输入和显示频率 当输入和显示频率不同时,Flutter团队与Google内部合作伙伴合作,极大地提高了滚动性能。...滚动时,这种不匹配会导致性能下降。...从今天的Flutter 1.22 SDK开始,您会发现/ bin文件夹(您可能在PATH中包含该文件夹)同时包含flutter和dart命令。有关更多详细信息,请参见Dart 2.10博客文章。

    7.5K20

    Flutter中构建布局 顶

    这些小部件安排在ListView中,而不是列中,因为在小设备上运行应用程序时,ListView会自动滚动。...撰写简单的小部件来构建复杂的小部件。 Flutter的布局机制的核心是小部件。 在Flutter中,几乎所有东西都是一个小部件 - 甚至布局模型都是小部件。...您还可以使用Window > Scale更改模拟器窗口的大小(不更改逻辑像素的数量)。 常见的布局小部件 Flutter拥有丰富的布局小部件库,但这里有一些最常用的布局部件。...Stack摘要: 用于与另一个小部件重叠的小部件 子列表中的第一个小部件是基础小部件; 随后的子被覆盖在基础小部件的顶部 堆栈的内容不能滚动 您可以选择剪切超过渲染框的子项 Stack示例: ?...处理Flutter中的盒子约束:讨论小部件如何受其渲染框限制。 在Flutter中添加资产和图像:说明如何将图像和其他资源添加到应用程序包中。

    43.1K10

    【老孟Flutter】Flutter 2 新增的功能

    平台惯用功能的另一项改进是更新的滚动条,该滚动条可以正确显示桌面形状因素。...此版本包括一个更新的Scrollbar小部件,该小部件在桌面环境中非常有效 滚动条小部件已更新,以提供桌面上预期的交互功能,包括拖动拇指,单击轨道以上下滚动页面以及在鼠标悬停在鼠标的任何部分上时显示轨道的功能...所谓“好”,是指它在小屏幕,中屏幕和大屏幕上看起来都不错,它利用了触摸,键盘和鼠标输入的优势,并且对于平台的惯用语言也很好用(例如,通过使用网络上的链接和桌面上的菜单)。...可用的修复程序列表,如带小灯泡的快速修复程序,可帮助您单击鼠标来更改代码。...举例来说,假设您的应用中包含以下代码行: 使用不推荐使用的参数创建Flutter小部件 由于不赞成使用此构造函数的参数,因此应将其替换为以下内容: 图片发布 创建一个Flutter小部件,其中不推荐使用的参数已替换

    7.9K20

    【Flutter】自定义滚动开关

    本文中,我们将探讨Flutter中 的**Custom Rolling Switch in Flutter。...**我们将在flutter应用程序中使用lite_rolling_switch 包来实现一个自定义滚动开关演示程序,该程序具有吸引人的动画和一些属性。...pub地址:https://pub.dev/packages/lite_rolling_switch 介绍 在Flutter中,开关是一个小部件,用于在两种选择(ON或OFF)之间进行选择。...当此属性无效时,开关小部件会失效。 该演示视频展示了如何在颤动中创建自定义滚动开关。它显示了自定义滚动开关如何在flutter应用程序中使用lite_rolling_switch包工作。...在小部件内,我们将添加一个列小部件。在此小部件中,我们将添加mainAxisAlignment为center。在内部,我们将添加带有样式的文本。

    33.4K60

    Flutter 入门指北之滑动部件(超详细)

    那么这里提下可滑动的容器部件 SingleChildScrollView 这个部件非常简单,不贴源码了。最简单的使用方式只需要提供一个 child 即可。...ExpansionTile 既然讲到了 ListView,在日常开发中,折叠列表也是一个比较常用的,所以这边要提下 ExpansionTile 这个部件,因为相对比较简单,所以直接上代码了 class...因为 GridView 和 ListView 亮着都是可滑动的部件,直接拼接肯定会有「滑动冲突」,所以 Flutter 就提供了一个粘合剂,CustomScrollView,那么 Flutter 如何实现呢...,但是以上介绍的在平时开发过程中够用了,如果后期发现还需要别的部件,我会继续补上。...scrollController 进行监听 _scrollController.addListener(() { // _scrollController.position.pixels 获取当前滚动部件滚动的距离

    2.5K30

    CoordinatorLayout使用(四):和Toolbar的简单使用

    snap: 代码中枚举SCROLL_FLAG_SNAP 在滚动结束后,如果view只是部分可见,它将滑动到最近的边界。...exitUntilCollapsed: 代码中枚举SCROLL_FLAG_EXIT_UNTIL_COLLAPSED 滚动退出屏幕,最后折叠在顶端。...设置enterAlways也就是为true的时候,任意向下的滚动都会让view(Toolbar)变为可见 反之,不设置,也就是false,就需要向下拉到底以后,才会显示view(Toolbar) enterAlwaysCollapsed...设置exitUntilCollapsed也就是为true的时候,任意向上的滚动都会让view(Toolbar)变为minHeight的高度可见,而不会全部消失 反之,不设置,也就是false,会全部消失...---- 中场小节 CoordinatorLayout中, 如果NestedScrollView要和Toolbar互动的话(CollapsingToolbarLayout等之后在了解,这里不涉及)

    1.5K30

    Flutte部件目录-基本部件(一)

    使用Flutter的视觉,结构,平台和交互式小部件集合更快地创建漂亮的应用程序。 基本部件 在构建您的第一个Flutter应用程序之前,您绝对需要了解这些小部件。...Row部件不会滚动(并且一般认为在一行中有更多的孩子比适合可用的房间更好是错误的)。如果您有一行小部件,并希望它们在空间不足的情况下能够滚动,请考虑使用ListView。...如果该行的非弹性内容比该行(那些不包含在Expanded或Flexible部件中的)本身多,则该行被认为已经溢出。当一行溢出时,该行没有任何剩余空间Expanded和Flexible的子项。...Column部件不滚动(并且通常认为宁愿在列中有更多子项也不使用适合可用空间是错误的)。 如果您有一行小部件,并希望它们在空间不足的情况下能够滚动,请考虑使用ListView。...在这种情况下,解决方案通常只是将内部列包装在Expanded中,以表明它应该占用外部列的剩余空间,而不仅仅是它需要的空间。 显示此消息的另一个原因是将列嵌套到ListView或其他垂直滚动条中。

    7.5K20

    为Flutter应用程序添加交互性 顶

    管理状态 小部件管理自己的状态 父母管理小部件的状态 混搭方法 其他交互式小部件 标准小部件 材料组件 资源 准备好 如果您已经在Flutter布局中构建布局,请跳到下一节。...Lib/main.dart pubspec.yaml - 不更改此文件 lakes.jpg-不更改为此文件 如果您仍然有疑问,请参阅获取支持。...小部件管理自己的状态 有时,小部件在内部管理其状态是最有意义的。 例如,当ListView的内容超过渲染框时,ListView自动滚动。...大多数使用ListView的开发人员不想管理ListView的滚动行为,因此ListView本身管理其滚动偏移量。 _TapboxAState类: 管理TapboxA的状态。...处理手势,Flutter Widget框架导览中的一部分:如何创建按钮并使其响应输入。 Flutter中的手势:Flutter手势机制的描述。

    4.2K20
    领券