【发布时间】:2021-06-07 07:35:01
【问题描述】:
我想实现一个搜索栏,当用户在ListView 中执行下拉操作时显示它,并在用户滚动ListView 时隐藏它(就像在 iOS 中一样)。但是找不到任何有关如何实现这一点的相关信息。 This answer wasn't helpful at all as RefreshIndicator 只返回一个刷新指示器。没有可显示的代码,因为我不知道如何在 Flutter 中做到这一点。
编辑:
代码:
NestedScrollView(
headerSliverBuilder:
(BuildContext context, bool innerBoxIsScrolled) =>
<Widget>[
SliverOverlapAbsorber(
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(
context),
sliver: SliverAppBar(
collapsedHeight: 100,
expandedHeight: 100,
toolbarHeight: 100,
leadingWidth: 0,
leading: Container(),
backgroundColor: Colors.red,
title: TextField(),
)),
],
body: ListView.builder(
itemCount: _itemCount,
itemBuilder: (BuildContext context, int index) {
return Text('Item $index');
}),
),
谢谢!
【问题讨论】:
-
您可以使用
SliverAppBar()进行一些自定义设计,您可以实现这一目标。查看SliverAppBar()api.flutter.dev/flutter/material/SliverAppBar-class.html的完整文档 -
@ChiragBargoojar 编辑了我的帖子并添加了一些代码,几乎可以按预期工作,但是知道如何默认隐藏
SliverAppBar()(在用户执行下拉操作之前不要显示它)? -
你有没有想过这个问题?如果你不这样做,你可以使用pub.dev/packages/pull_to_reveal 我需要做同样的事情,但对于自定义滚动视图
标签: flutter searchbar flutter-listview