[Android] RecyclerView 스크롤을 특정 위치로 이동

2022. 11. 19. 19:21·기타/Android

사용자가 앱을 사용하면서 화면의 스크롤을 내리다가 갱신하기 위해서 또는 다른 이유들로 스크롤의 포지션을 바꾸고 싶어 합니다. 일반적으로 많이 사용하는 예로는 자신이 보고 있는 프래그먼트가 선택 된 하단바를 다시 클릭 했을 때, 최상단으로 이동하는 기능을 많이 사용하고 이 예시를 통해 설명하고자 합니다.


MainActivity위에서 HomeFragment가 동작하고 BottomNavigation은 MainActivitiy, RecyclerView는 HomeFragment에 있다고 가정합니다.

* 메인 액티비티 *

binding.bottomNavigation.setOnItemSelectedListener {
            when(it.itemId) {
                R.id.tab1 -> {
                    if(binding.bottomNavigation.selectedItemId == R.id.tab1) {
                        homeFragment.binding.recyclerView.scrollToPosition(0)
                    }else {
                        (tab1 표시)
                    }
                    true
                }
                else -> false
            }
        }

 

1. 하단 바 클릭 시 이벤트가 발생하여야 함으로 구현 된 내용은 setOnItemSelectedListener 안에 있습니다.

2. R.id.tab1은 HomeFragment 입니다.

3. if else 를 통해 같은 탭을 눌렀는지 아닌지를 판별합니다.

4. 하단바.selectedItemId == R.id.tab1 을 통해 기존에 선택되어 있던 하단바가 HomeFragment인지 판단합니다.

5. HomeFragment이면 리사이클러뷰의 스크롤포지션을 0으로 바꿔줍니다.

 

핵심 코드

리사이클러뷰.scrollToPosition(포지션)
리사이클러뷰.smoothScrollToPosition(포지션)

// 첫 번째는 빠르게 이동하고 두 번째는 천천히 이동합니다.

'기타 > Android' 카테고리의 다른 글

[Kotlin] Sealed class 란?  (0) 2023.02.25
[Kotlin] Scope functions(let, run, with, apply, also) 정리  (0) 2023.02.22
[Android] Toolbar 뒤로가기 버튼 만들기  (0) 2022.08.12
[Android] BottomNavigationView(하단 바) 설정하기  (0) 2022.08.10
[Android] Toolbar(상단 바) 설정하기  (0) 2022.08.08
'기타/Android' 카테고리의 다른 글
  • [Kotlin] Sealed class 란?
  • [Kotlin] Scope functions(let, run, with, apply, also) 정리
  • [Android] Toolbar 뒤로가기 버튼 만들기
  • [Android] BottomNavigationView(하단 바) 설정하기
ohhoooo
ohhoooo
  • ohhoooo
    ohhoooo
    ohhoooo
  • 전체
    오늘
    어제
    • 전체 글 (84)
      • iOS (1)
      • Swift (1)
      • Data structure & Algorithm (67)
        • 프로그래머스 (67)
      • 기타 (15)
        • TIL (2)
        • Android (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
ohhoooo
[Android] RecyclerView 스크롤을 특정 위치로 이동
상단으로

티스토리툴바