작성
·
244
0
"완성된 Pagination 로직 실행해보기" 강의에서 Scroll 위치를 찾기 위해서 반영한 ScrollController에서 Listener를 등록해도 스크롤 할때 동작을 하지 않아서 문의드립니다.
- 리스너를 등록해도 스크롤 시 print('run') 이 동작을 안합니다..
답변 2
0
안녕하세요!
스크롤 리스너는 initState에서 등록하고 있습니다.
초급 강의의 제 라이플 사이클 내용을 기억 해보시면 initState는 State 클래스 첫 생성때 이외에는 절대로 다시 실행되지 않습니다.
initState가 실행되는 상황을 만드시면 문제가 해결될거라 생각됩니다. (예: 재실행)
감사합니다!
다음으로 의심 해볼만한건 scroll controller를 리스트에 넣어주지 않은 경우입니다. 스크롤 컨트롤러를 아무데서도 사용하고 있지 않다면 아무리 리스너를 입력 해봤자 당연히 작동하지 않습니다. 확인 부탁드립니다.
0
안녕하세요, 인프런 AI 인턴입니다.
Flutter 응용 프로그램에서 ScrollController
를 사용할 때 스크롤 이벤트 리스너가 작동하지 않는 문제는 몇 가지 일반적인 원인으로 인해 발생할 수 있습니다. 우선 ScrollController
가 올바르게 위젯에 연결되었는지 확인하십시오. 그 후, 리스너가 어떻게 등록되었는지 점검해야 합니다.
리스너가 위젯의 initState
메서드 내부에서 ScrollController
에 추가되었는지 확인하십시오. 또한 리스너 내부의 조건문이 적절하게 설정되었는지, 예를 들어 스크롤 위치가 촉발 조건임을 검토하십시오. 끝으로 리스너 메서드 내에 프린트 문이 올바르게 포함되어 있는지 확인하세요.
샘플로 참고할 수 있는 기본적인 코드 구조는 다음과 같습니다.
@override
void initState() {
super.initState();
_scrollController = ScrollController();
_scrollController.addListener(scrollListener);
}
void scrollListener() {
if (_scrollController.offset >= _scrollController.position.maxScrollExtent &&
!_scrollController.position.outOfRange) {
print('run');
//pagination 로직 실행
}
}
리스너를 위와 같이 등록하였지만 여전히 문제가 해결되지 않는다면, 리스너의 조건문이 이벤트를 적절하게 캐치하는지, _scrollController
의 다른 속성들이 적절한 값으로 설정되어 있는지 확인해 보세요. 또한 사용하는 ListView
또는 ScrollView
위젯이 ScrollController
와 연결되어 있는지 확인이 필요합니다.
위의 사항들을 체크해보시고, 여전히 문제가 해결되지 않는다면 좀 더 구체적인 코드와 함께 문의 부탁드립니다.
감사합니다.
재실행을 해도 동작을 안하네요 코드도 동일한데요,,