Android/Common

[Android] RecyclerView의 최상단 최하단 감지하기

점냥 2020. 2. 10. 16:19
반응형

안녕하세요 점냥입니다:)

 

페이징을 구현하려고 할 때, Jetpack Paging 라이브러리를 쓰지 않는 다면 우리는 리스트의 끝을 도달하는 시점을 확인해야 합니다. recyclerview에서는 함수로 쉽게 제공해주고 있습니다!

 

canScrollVertically(int direction) // 수직 상단 하단 감지

canScrollHorizontally(int direction) //수평 상단 하단 감지

 

수직 기준 direction 값이 1이면 하단 방향 , -1이면 상단 방향

수평 기준 direction 값이 1이면 오른쪽 방향 , -1이면 왼쪽 방향


위 조건을 사용하여 아래처럼 구현할 수 있습니다.

 

myList.setOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        if (!myList.canScrollVertically(-1)) {
            Log.i(TAG, "Top of list");
        } else if (!myList.canScrollVertically(1)) {
            Log.i(TAG, "End of list");
        } else {
            Log.i(TAG, "idle");
        }
    }
});
반응형