如何解决具有控制器的SingleChildScrollView不会第一次滚动
我有一个要求,当用户向上滚动页面时,应显示应用栏标题。并且当滚动到最小标题时应该隐藏。 这是因为页面内容也具有标题。
我已经通过控制器实现了SingleChildScrollView。
void initState() {
_controller = ScrollController();
_controller.addListener(_scrollListener);
super.initState();
}
_scrollListener() {
if (_controller.offset <= _controller.position.minScrollExtent &&
!_controller.position.outOfRange) {
setState(() {
_reachedTop = true;
});
} else {
setState(() {
_reachedTop = false;
});
}
}
_buildContent(BuildContext context) {
return SafeArea(
child: SingleChildScrollView(
controller: _controller,child: widget.content,));
}
_reachedTop变量用于在应用栏上切换标题。
当我第一次尝试向上滚动时,它根本不会滚动,而是显示应用栏的标题。 我假设变量_reachedTop设置为false。
然后当我尝试第二次滚动时,它允许我滚动。
我认为这是由我用来设置变量的setState引起的。
解决方法
使用slivers
(这里是Flutter doc链接)https://flutter.dev/docs/development/ui/advanced/slivers,以了解有关银条的更多信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。