final ScrollController _scrollController = ScrollController();
@override
void initState() {
_scrollController.addListener(() {
scrollListener();
});
super.initState();
}
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
스크롤 맨 위, 맨 밑 감지
scrollListener() async {
if (_scrollController.offset == _scrollController.position.maxScrollExtent
&& !_scrollController.position.outOfRange) {
print('스크롤이 맨 바닥에 위치해 있습니다');
} else if (_scrollController.offset == _scrollController.position.minScrollExtent
&& !_scrollController.position.outOfRange) {
print('스크롤이 맨 위에 위치해 있습니다');
}
}
maxScrollExtent = 스크롤 맨 밑
minScrollExtent = 스크롤 맨 위
스크롤 위치 감지
print('offset = ${_scrollController.offset}');
_scrollController.offset = 스크롤 위치 감지
어디서 사용하나요?
SingleChildScrollView(
controller: _scrollController,
child: Column()
)
ListView(
controller: _scrollController,
child: Container()
)
혹시~ outOfRange는 왜 써야 하는지 알 수 있을까요?