개발공부

[Android] 리사이클러뷰 스크롤 위치 찾기, 페이징 처리 본문

Android

[Android] 리사이클러뷰 스크롤 위치 찾기, 페이징 처리

mscha 2022. 7. 20. 18:01
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));

// 리사이클러뷰가 맨 밑까지 갔는지 알 수 있는 방법.
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
	@Override
	public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
		super.onScrollStateChanged(recyclerView, newState);
	}

	@Override
	public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
		super.onScrolled(recyclerView, dx, dy);
				
		// 리사이클러뷰 가장 마지막 index
		int lastPosition = ((LinearLayoutManager) recyclerView.getLayoutManager())
			.findLastCompletelyVisibleItemPosition();
		// 받아온 리사이클러 뷰 카운트
		int totalCount = recyclerView.getAdapter().getItemCount();

		// 스크롤을 맨 끝까지 한 것!
		if(lastPosition == totalCount -1){
			// 이곳에 스크롤이 맨 끝에 왔을 경우
			// 행동할 코드 입력
		}
	}
});