在过去的几天里,我一直在阅读flutter框架的文档,尤其是片段部分,但我不太确定从哪里开始。我正在尝试实现粘头和捕捉效果。RenderSliverList可能是一个好的开始吗?我需要重新布局吗?我需要做额外的绘图吗?如果需要,从哪里开始?
任何帮助从哪里开始将是一个巨大的帮助,提前感谢!
编辑:我想我现在明白了布局的部分,但我就是找不到画应该发生在哪里。
编辑2:为了澄清,这是期望的“粘性标题效果”:
How can I make sticky headers in RecyclerView? (Without external lib)
这就是“瞬间”效应
https://rubensousa.github.io/2016/08/recyclerviewsnap
6条答案
按热度按时间ncgqoxb01#
对于“粘头效应”,我自己也遇到了这个问题,所以我创建了这个包来管理带有切片的粘头:https://github.com/letsar/flutter_sticky_header
要使用它,您必须在
CustomScrollView
中的每个部分创建一个SliverStickyHeader
。其中一节可以这样写:
如果您需要,上面演示的完整源代码在这里:https://github.com/letsar/flutter_sticky_header/blob/master/example/lib/main.dart
希望这对你有帮助。
x759pob22#
很简单:
使用
CustomScrollView
,并给予SliverList
和SliverAppBar
作为子项。如果需要,可以将SliverList
替换为SliverGrid
。然后,根据您想要实现的效果,您可以在
SliverAppBar
上设置一些属性:最后,你可能会有类似的东西:
更棒的是,您可以在单个
CustomScrollView
中连接不同的滚动行为,这意味着您只需将SliverGrid
作为子对象添加到scrollView中,就可以在一个网格后面跟随一个列表。我知道我知道,扑翼很棒。
enxuqcxy3#
我使用下面的代码成功地在一个iOS应用程序的Flutter上实现了粘头效果--这段代码是我在这里获得灵感的来源(https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/animation/home.dart#L112):
要使其具有粘性,请将_SliverAppBarDelegate添加到silvers小部件列表中:
我不太清楚如何让_SliverAppBarDelegate Package 内容,我必须提供36个逻辑像素的大小才能让它工作。如果有人知道它如何 Package 内容,请在下面的答案中留下评论。
6ljaweal4#
我解决了这个问题,请尝试sticky_and_expandable_list。
特征
oxalkeyp5#
根据文档,您可以将
StickyHeader
或StickyHeaderBuilder
放置在任何可滚动内容中。文档page只提供了一个示例,如何将
StickyHeader
与ListView
一起应用,那么其他小部件(如SingleChildScrollView
或CustomScrollView
)呢?在这个例子中,我将提供一个非常简单的
StickyHeader
和一个SingleChildScrollView
,并确保您可以将其放入任何您想要的SingleChildScrollView
中:nszi6y056#
不使用slib实现你的插件,你可以使用flutter社区awesome插件来实现。
https://pub.dev/packages/sticky_headers