我正在尝试复制其中包含以下组件的UX设计:
此UX的特殊之处在于,当用户搜寻注释或反应列表(基于他当前正在查看的列表)时,垂直滚动列表将捕捉到选项卡栏。
从那里,用户将能够向下滚动评论列表,或者通过附加滚动再次显示帖子。请注意,应放置原始文章,以便用户再次显示它,需要更大的滚动力。
我整理了一个视频,您可以在此处观看该视频,以更好地了解其工作原理:
我已经实现了一个名为PostContent
的小部件,其中包含上述所有帖子的主要内容。我也已经尝试过为所需的UX编码,如下所示:
Scaffold(
body: SafeArea(
child: NestedScrollView(
headerSliverBuilder: (context, _) {
return [
SliverAppBar(
backgroundColor: Colors.white,
expandedHeight: 310,
pinned: true,
primary: true,
flexibleSpace: PostContent(post: post),
)
];
},
body: ListView.builder(
itemBuilder: (context, index) {
return Text(index.toString());
},
),
),
),
);
通过单击以下预览可以看到结果:
此实现的问题如下:
PostContent
是Column
,我如何获取其高度,这样就不必在SliverAppBar
的{{1}}属性中指定固定值? expandedHeight
时到达ListView
时停止滚动而不向上滚动?