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

如何在颤动中滚动时固定SliverAppBar中的TextField?

在滚动时固定SliverAppBar中的TextField,可以通过使用NestedScrollView和SliverPersistentHeader来实现。

首先,将整个页面的主体包裹在NestedScrollView中,这样可以实现滚动效果。然后,在SliverAppBar的bottom属性中添加一个SliverPersistentHeader,将TextField放置在其中。

下面是一个示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: CustomScrollView(
          slivers: <Widget>[
            SliverAppBar(
              pinned: true,
              expandedHeight: 200,
              flexibleSpace: FlexibleSpaceBar(
                title: Text('Scrolling TextField'),
              ),
              bottom: PreferredSize(
                preferredSize: Size.fromHeight(48),
                child: SliverPersistentHeader(
                  delegate: _TextFieldDelegate(),
                ),
              ),
            ),
            SliverList(
              delegate: SliverChildBuilderDelegate(
                (context, index) => ListTile(
                  title: Text('Item $index'),
                ),
                childCount: 100,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

class _TextFieldDelegate extends SliverPersistentHeaderDelegate {
  @override
  Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) {
    return Container(
      color: Colors.white,
      child: TextField(
        decoration: InputDecoration(
          hintText: 'Enter text',
          contentPadding: EdgeInsets.all(16),
        ),
      ),
    );
  }

  @override
  double get maxExtent => 48;

  @override
  double get minExtent => 48;

  @override
  bool shouldRebuild(covariant SliverPersistentHeaderDelegate oldDelegate) {
    return false;
  }
}

在这个示例中,我们使用CustomScrollView作为页面的主体,其中包含了一个SliverAppBar和一个SliverList。在SliverAppBar中,我们设置pinned为true,使其在滚动时保持固定。然后,我们使用SliverPersistentHeader作为SliverAppBar的bottom属性,将TextField放置在其中。

这样,当页面滚动时,SliverAppBar会保持固定,而TextField会随着滚动而滚动。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

腾讯云云服务器(CVM)是一种可弹性伸缩的云计算服务,提供高性能、可靠稳定的云服务器实例,适用于各种应用场景。

腾讯云对象存储(COS)是一种安全、低成本、高可靠的云端存储服务,适用于存储和处理各种类型的数据,包括图片、音视频、文档等。

更多关于腾讯云云服务器(CVM)的信息,请访问:腾讯云云服务器(CVM)产品介绍

更多关于腾讯云对象存储(COS)的信息,请访问:腾讯云对象存储(COS)产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在keras添加自己优化器(adam等)

本文主要讨论windows下基于tensorflowkeras 1、找到tensorflow根目录 如果安装使用anaconda且使用默认安装路径,则在 C:\ProgramData\Anaconda3...2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

45K30
  • iOSMint Picker滑动页面跟着滚动解决方法

    主要表现在用手指在弹出层触摸滑动,页面也跟着滚动,严重影响体验。...解决方法: 1、由于 Picker 组件滚动是用 touch 事件 + translate 实现,所以我们可以在 Picker 弹层出现时候禁止页面的默认滚动机制,Picker 弹层消失时解除禁用页面的默认滚动机制... {     /*---------监听函数--------------*/     handler:function(e){e.preventDefault();}   } }, // 通过监听蒙层显隐字段来控制页面滚动禁用事件...body设置 overflow: hidden ,弹层关闭设置 overflow: scroll/auto 除了 Mint-UI Picker,其他库 Picker 组件可能也会有类似问题,比如...问题产生原因是一样,同样可以用这个思路解决。 参考文档: iospicker滑动穿透bug

    1.2K20

    Flutter | Slivers 系列

    概述 CustomScrollView:一个滚动容器,改组件不接受任何 child,但是你可以直接提供 Slivers 已创建各种滚动效果,例如页面中有多个可滑动列表, Appbar, 列表,网格...,就可以提升不小性能,但是在实际项目中,想要固定元素高度是非常麻烦,就算是列表元素只有一行文字,也有可能会出现问题,例如直接在系统层面修改字体大小,这也会导致高度固定导致渲染出来效果不尽人意...在 slivers 系列SliverAppbar 可以说是使用频率比较高组件了,SliverAppbar 为应用栏提供了自定义滚动行为,下面我们来看一下 class _MyHomePageState...SliverAppbar,并没有实现任何特殊效果,默认效果如下: 可以看到在滑动过程SliverAppbar 被顶上去了,这也是非常正常。...hasScrollBody: false, child: Center( child: CircularProgressIndicator(), ), ) 复制代码 hasScrollBody :当前组件是否有可滚动组件

    1.5K11

    6详解AppBar小部件

    由于它是一个如此常用组件,因此 Flutter 为该功能提供了一个名为AppBar专用小部件。 在本教程,我们将通过一些实际示例向您展示如何在 Flutter 应用程序自定义 AppBar。...以下是我们将介绍内容: Flutter AppBar 是什么? 应用栏布局 自定义 AppBar Flutter AppBar 是什么?...工具栏包含文字,图标,按钮,和其他任何公司前景,除了小部件,Container和Image。...用来在 Toolbar 标题下面显示一个 Tab 导航栏 this.elevation,//控件 z 坐标顺序,默认值 4,对于可滚动 SliverAppBar,当 SliverAppBar...和内容同级时候,该值为 0, // 当内容滚动 SliverAppBar 变为 Toolbar 时候,修改 elevation 值。

    16.4K10

    Flutter | 滚动组件,ListView,GridVIew等

    滚动组件中有很多都支持 Sliver 延时构建模型, ListView,GridView ,但是也有不支持改模型 SingleChildScrollView 主轴和纵轴 在滚动组件坐标描述,...其实此属性本质上是决定可滚动组件初始滚动位置是在 头 还是在 尾 , false ,初始位置在头,反之则在 尾 primary:指是否使用 widget 树默认 PrimaryScrollController...,所以如果预计视口可能包含超出屏幕尺寸太多内容,那么使用 SingleChildScrollView 将会非常昂贵(性能差),此时应该使用一些支持 Sliver 延时加载滚动组件, ListView...组件; 典型,在一个懒加载列表,如果将列表包裹在 AutomaticKeepAlive ,在改了吧划出视口,他也不会被 GC 回收(垃圾回收),他会使用 KeepAliveNotification...:SliverAppBar 对应 AppBar,两者不同之处在于 SliverAppBar 可以集成到 CustomScrollView SliverAppBar 可以结合 FlexibleSpaceBar

    8.5K20

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

    floating 属性,当有下拉动作,会显示 AppBar ?...SliverPersistentHeader Flutter ,为我们提供了这么一个作为头部部件 SliverPersistentHeader,这个部件可以根据滚动距离缩小高度,有点类似 SliverAppBar...糟透了翻译 X 1:一个内部能够嵌套其他滚动部件,并使其滚动位置联结到一起滚动部件 /// The most common use case for this widget is a scrollable...X 3:用于构建 NestScrollView 头部部件,innerBoxIsScrolled 主要用来控制 SliverAppBar forceElevated 属性,当内部内容滚动,显示...接着请注意代码那段 assert 文字 糟透了翻译 X 5:sliverOverlapAbsorberHandleFor 传入参数 context 必须包含 NestedScrollView

    2.2K30

    Flutter 首页必用组件NestedScrollView

    今天介绍组件是NestedScrollView,大部分App首页都会用到这个组件。 NestedScrollView 可以在其内部嵌套其他滚动视图组件,其滚动位置是固有链接。...在普通ScrollView, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反方向滚动(例如,允许用户在标签所代表页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollViewSliverAppBar折叠以展开。...滚动隐藏AppBar 比如实现如下场景,当列表滚动,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context...reverse参数表示反转滚动方向,并不是由垂直转为水平,而是垂直方向滚动,默认向下滚动,reverse设置false,滚动方向改为向上,同理水平滚动改为水平向左。

    4.2K10

    何在 Kubernetes 滚动部署实现真正零停机时间:避免断开客户端连接

    滚动部署期间会发生什么情况? 滚动部署意味着逐步将当前容器替换为新容器。在此过程,总是有从微秒到秒停机时间。对于用户群较低应用程序来说,它可能微不足道。...注意:在 Kubernetes 中部署到生产环境,还有其他方法可以实现零停机时间,例如利用 Istio 等服务网格或实现蓝绿部署。与滚动部署相比,这些选项消耗资源更多,从而导致基础设施成本增加。...在继续之前,以下是本教程先决条件: Kubernetes 知识 使用Docker经验 Pod 启动阶段 当 Pod 在未配置就绪探测滚动部署启动,端点 Controller 会使用容器端点更新相应服务对象...当 API 服务器收到来自客户端或滚动部署期间 Pod 删除通知,它首先在 etcd 修改 Pod 状态,然后通知端点控制器和 Kubelet。...当从客户端或滚动部署期间收到删除 Pod 请求,此请求将到达控制平面上 API 服务器。

    25010

    Flutter 首页必用组件NestedScrollView示例详解

    今天介绍组件是NestedScrollView,大部分App首页都会用到这个组件。 可以在其内部嵌套其他滚动视图滚动视图,其滚动位置是固有链接。...在普通ScrollView, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反方向滚动(例如,允许用户在标签所代表页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollViewSliverAppBar折叠以展开。...滚动隐藏AppBar 比如实现如下场景,当列表滚动,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context...reverse参数表示反转滚动方向,并不是由垂直转为水平,而是垂直方向滚动,默认向下滚动,reverse设置false,滚动方向改为向上,同理水平滚动改为水平向左。

    4K40

    SliverAppBar

    在前面的文章我们将到了Appbar用户,它类似于Androidtoolbar,但是熟悉Android开发童鞋应该知道在Android还有个Collapsing Toolbar东西,就是一个可以折叠标题栏效果...首先我们使用了NestedScrollViewheaderSliverBuilder属性添加了SliverAppBar 然后我们设置展开高度为200,不让标题栏随着滑动滚动出可视区域 我们使用flexibleSpace...来构建了一个可以滚动区域 最后我们给NestedScrollViewbody加了一个ListView 然后我们来看下效果: ?...当然我们是希望这个TabBar在SliverAppBar下方,并且随着SliverAppBar滚动,但是我们还是来看下效果吧 ?...但是有童鞋就问问了,我们怎么让这个SliverPersistentHeader内容(TabBar)不随着ListView滚动而滑动呢?

    1.8K30

    UITableView在Flutter是什么?

    那么,当这些基本元素排列布局超过屏幕显示尺寸(即超过一屏),我们就需要引入列表控件来展示视图完整内容,并根据元素多少进行自适应滚动展示。...在这个例子,我们一次性创建了6个子Widget。但是从上图运行效果可以看到,由于屏幕宽高有限,同一间用户只能看到3个Widget。...以一个有着封面头图列表为例,我们希望封面头图和列表这两层视图滚动联动起来,当用户滚动列表,头图会根据用户滚动手势,进行缩小与展开。...具体实现思路是: 在创建SliverAppBar,把 flexibleSpace 参数设置为悬浮头图背景。...flexibleSpace 可以让背景图显示在SliverAppBar下方,高度和SliverAppBar一样; 而在创建SliverList,通过 SliverChildBuilderDelegate

    5.6K10

    【Flutter】自定义滚动开关

    工作就像房子电源开关。 本文中,我们将探讨Flutter **Custom Rolling Switch in Flutter。...假设此属性价值回报为true,则此开关为ON,为OFF则为false。当此属性无效,开关小部件会失效。 该演示视频展示了如何在颤动创建自定义滚动开关。...它显示了自定义滚动开关如何在flutter应用程序中使用lite_rolling_switch包工作。...它显示了在用户按下按钮后进行切换交互,该开关将滚动到具有动画效果另一侧,并且在滚动该开关将更改图标和文本。...我们将添加animationDuration手段来延迟动画开始并添加onChanged表示用户打开或关闭开关时间。当我们运行应用程序时,我们应该获得屏幕输出,屏幕下方截图所示。

    33.4K60

    flutter 起步

    图片注意点:官网下载flutter包完成将安装包zip解压到你想安装Flutter SDK路径(:C:\src\flutter;注意,不要将flutter安装到需要一些高权限路径C:\Program...persistentFooterButtons - 固定在下方显示按钮,比如对话框下方的确定、取消按钮。drawer - 抽屉菜单控件。...全局变量和静态成员变量,这些变量不会在热刷新更新。修改了main函数创建根控件节点,Flutter在热刷新后只会根据原来根节点重新创建控件树,不会修改根节点。...persistentFooterButtons - 固定在下方显示按钮,比如对话框下方的确定、取消按钮。drawer - 抽屉菜单控件。...elevation → double - 控件 z 坐标顺序,默认值为 4,对于可滚动 SliverAppBar,当 SliverAppBar 和内容同级时候,该值为 0, 当内容滚动 SliverAppBar

    4.5K20

    Flutter 粘合剂CustomScrollView控件

    ,需要给GridView指定高度,但我们希望高度随内容而变化(不指定),ListView和GridView作为整体滚动效果。...,AppBar具有吸顶效果,此效果也是我们经常遇到,用法如下: CustomScrollView( slivers: [ SliverAppBar( pinned...reverse参数表示反转滚动方向,并不是垂直转为水平,而是垂直方向滚动,默认向下滚动,reverse设置false,滚动方向改为向上,同理水平滚动改为水平向左。...primary设置为true,不能设置controller,因为primarytrue,controller使用PrimaryScrollController,这种机制带来好处是父组件可以控制子树滚动组件滚动行为...,例如,Scaffold正是使用这种机制在iOS实现了点击导航栏回到顶部功能。

    2K20

    Flutter之SliverAppBar

    SliverAppBar控件可以实现页面头部区域展开、折叠效果,类似于AndroidCollapsingToolbarLayout。 先看下SliverAppBar实现效果,效果图如下: ?...SliverAppBar控件需要和CustomScrollView搭配使用,SliverAppBar要通常放在slivers第一位,后面接其他sliver控件。...SliverAppBar中有一个非常重要参数flexibleSpace,flexibleSpace是SliverAppBar展开和折叠区域,flexibleSpace与expandedHeight一起使用...floating 设置为true,向下滑动,即使当前CustomScrollView不在顶部,SliverAppBar也会跟着一起向下出现 pinned 设置为true,当SliverAppBar...内容滑出屏幕,将始终渲染一个固定在顶部收起状态 snap 设置为true,当手指放开SliverAppBar会根据当前位置进行调整,始终保持展开或收起状态,此效果在floating=true

    1.4K30
    领券