以下是一个示例,如何使用WidgetsBinding.instance.addPostFrameCallback在ListView构建完成后访问maxScrollExtent:
import 'package:flutter/material.dart';
class MyListView extends StatefulWidget {
@override
_MyListViewState createState() => _MyListViewState();
}
class _MyListViewState extends State<MyListView> {
final ScrollController _scrollController = ScrollController();
double _maxScrollExtent = 0;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
_maxScrollExtent = _scrollController.position.maxScrollExtent;
print('maxScrollExtent: $_maxScrollExtent');
});
}
@override
Widget build(BuildContext context) {
return ListView.builder(
controller: _scrollController,
itemCount: 100,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text('Item $index'),
);
},
);
}
}
在上述示例中,我们将ScrollController绑定到ListView,然后在initState方法中使用WidgetsBinding.instance.addPostFrameCallback来获取maxScrollExtent。在回调函数中,我们可以访问maxScrollExtent并对其执行任何适当的逻辑。