gpt4 book ai didi

dart - Flutter 检查滚动能力

转载 作者:IT王子 更新时间:2023-10-29 06:39:27 26 4
gpt4 key购买 nike

假设我有一个 ScrollController _scrollController;有没有办法在构建函数期间检查滚动能力?

我试过这样的事情:

  Widget build(BuildContext context) {
final hasScroll = MediaQuery.of(context).size.height < scrollController.position.maxScrollExtent;

但据我所知,它不起作用,因为 _scrollControllerbuild() 函数期间没有附加。

最佳答案

是的,在 ScrollController 附加到 ListView 之前,您不能使用它。您需要使用 WidgetsBindingObserverSchedulerBindingaddPostFrameCallback 方法。这是证明这一点的简单示例。

class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
ScrollController _scrollController;

@override
void initState() {
super.initState();
_scrollController = ScrollController();
SchedulerBinding.instance.addPostFrameCallback((duration) {
// prints true if scrollable else false
print("isScrollable = ${_scrollController.position.maxScrollExtent != 0}");
});
}

Widget build() {
return ListView.builder(
controller: _scrollController,
...
}
}

关于dart - Flutter 检查滚动能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56224366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com