Flutter에서 ScrollController는 스크롤 가능한 위젯을 제어하는 데 사용되는 클래스입니다. ScrollController는 사용자가 스크롤을 수행할 때 위치 및 애니메이션 상태를 추적합니다. 이를 사용하여 스크롤 위치를 설정하거나 가져오거나, 스크롤 애니메이션을 시작하거나, 스크롤 가능한 위젯의 스크롤 상태를 수신하는 데 사용할 수 있습니다.
ScrollController는 ListView, GridView, SingleChildScrollView 등과 같은 스크롤 가능한 위젯에서 주로 사용됩니다. 기본적인 사용 방법은 다음과 같습니다:
ScrollController 인스턴스 생성:
ScrollController _scrollController = ScrollController();
스크롤 가능한 위젯에 ScrollController 할당:
ListView.builder(
controller: _scrollController,
itemCount: itemCount,
itemBuilder: (BuildContext context, int index) {
return ListTile(title: Text('Item $index'));
},
);
ScrollController를 사용하여 스크롤 위치 제어 및 상태 알림 수신:
// 스크롤 위치 가져오기
double scrollPosition = _scrollController.position.pixels;
// 스크롤 위치 설정
_scrollController.jumpTo(newPosition);
// 애니메이션과 함께 스크롤 위치 설정
_scrollController.animateTo(
newPosition,
duration: Duration(milliseconds: 300),
curve: Curves.easeInOut,
);
// 스크롤 상태에 대한 알림 수신
_scrollController.addListener(() {
// 스크롤 위치, 애니메이션 상태 등에 대한 정보 처리
});
이러한 기능을 사용하여 자동 스크롤, 무한 스크롤, 페이징 등과 같은 다양한 스크롤 동작을 구현할 수 있습니다.