Flutter 滑盖式弹性空间';不显示在滚动备份中
我在SliverAppBar中使用flexibleSpace,当我向上滚动时,使用floating:true、pinted:false、snap:true。它显示AppBar和flexibleSpace。但我想要的是,当用户向下滚动时,它应该隐藏应用程序栏和flexibleSpace,当用户向上滚动时,它应该只显示应用程序栏。直到滚动到页面的第一页,它也应该显示flexibleSpace。据我所知,SilverAppBar中没有方便的设置来满足您的需要 这可能不是最好的解决办法。但在某些情况下,它可以起作用:Flutter 滑盖式弹性空间';不显示在滚动备份中,flutter,dart,flutter-sliver,sliverappbar,Flutter,Dart,Flutter Sliver,Sliverappbar,我在SliverAppBar中使用flexibleSpace,当我向上滚动时,使用floating:true、pinted:false、snap:true。它显示AppBar和flexibleSpace。但我想要的是,当用户向下滚动时,它应该隐藏应用程序栏和flexibleSpace,当用户向上滚动时,它应该只显示应用程序栏。直到滚动到页面的第一页,它也应该显示flexibleSpace。据我所知,SilverAppBar中没有方便的设置来满足您的需要 这可能不是最好的解决办法。但在某些情况下,
浮动:true
,固定:false
(默认值为false)
展开高度
SliverAppBar
具有固定的、有限的功能,如果您想要更复杂的东西,请使用SliverPersistentHeader
ScrollController _scrollController;
bool _top;
double _expandH;
double _collapseH;
@override
void initState() {
_collapseH = 50;
_expandH = 150;
_top = false;
_scrollController = ScrollController()..addListener(() {
if(_scrollController.offset == 0 && !_top) {
setState(() {
_top = true;
_scrollController.position.correctPixels(_expandH-_collapseH);
});
}else if(_top && _scrollController.offset > _expandH-_collapseH) {
setState(() {
_top = false;
_scrollController.position.correctPixels(0);
});
}
});
super.initState();
}
...
CustomScrollView(
controller: _scrollController,
slivers: [
SliverAppBar(
floating: true,
// pinned: false,
expandedHeight:_top ? _expandH: _collapseH,
...