리사이클러 뷰란, 여러 가지 항목을 나열하는 목록 화면이다.
리사이클러 뷰는 목록을 만드는데 이것만 사용해선 화면에 아무것도 출력되지 않는다. 그러므로 다음과 같은 구성요소를 이용해야 한다.
cf. 리스트 뷰와 리사이클러 뷰
API 버전 1에서 창시된 리스트 뷰로도 목록 화면을 만들 수 있다. 하지만 최근에는 리사이클러 뷰가 완벽히 대체하였다.
ViewPager2
는 안드로이드에서 여러 페이지를 좌우로 스와이프하여 전환할 수 있도록 하는 뷰다. 기존 ViewPager
의 개선된 버전으로, 더 많은 기능과 유연성을 제공한다. ViewPager2
는 수평 및 수직 방향으로 페이지를 스와이프할 수 있으며, 리사이클러 뷰의 기능을 내부적으로 사용하여 성능과 확장성을 향상시켰다.
양방향 스와이프 지원: ViewPager2
는 수평뿐만 아니라 수직으로도 페이지를 스와이프할 수 있다. 이를 위해 android:orientation
속성을 사용하면 된다.
리사이클러 뷰 기반: ViewPager2
는 내부적으로 리사이클러 뷰를 사용하여 페이지 전환을 처리한다. 이로 인해 페이지가 많을 때도 메모리 효율성을 유지할 수 있다.
프래그먼트와 호환성: FragmentStateAdapter
를 사용하여 프래그먼트 기반의 페이지를 쉽게 구현할 수 있다. 페이지가 많거나 동적으로 추가 및 제거될 때 유용하다.
RTL 지원: ViewPager2
는 오른쪽에서 왼쪽(RTL) 방향을 기본적으로 지원한다.
페이지 변경 콜백: ViewPager2.OnPageChangeCallback
을 사용하여 페이지가 변경될 때 호출되는 콜백을 설정할 수 있다. 이를 통해 페이지 전환 시 애니메이션이나 특정 작업을 수행할 수 있다.
DrawerLayout
은 안드로이드에서 네비게이션 드로어를 구현할 때 사용되는 레이아웃이다. 네비게이션 드로어는 화면의 좌측 또는 우측에서 슬라이드되어 나타나는 메뉴로, 사용자가 앱 내의 다른 화면으로 쉽게 이동할 수 있도록 도와준다.
슬라이드 메뉴: DrawerLayout
은 화면의 왼쪽 또는 오른쪽에서 슬라이드하여 나타나는 메뉴를 쉽게 구현할 수 있다. 보통 네비게이션 메뉴를 배치하여 앱의 주요 섹션으로 이동할 수 있게 한다.
다양한 위치에 드로어 배치: 드로어는 화면의 왼쪽뿐만 아니라 오른쪽에도 배치할 수 있다.
컨텐츠와 드로어 구분: DrawerLayout
은 기본적으로 두 개의 자식 뷰를 포함한다. 첫 번째 자식은 메인 컨텐츠를 나타내고, 두 번째 자식은 드로어로 사용된다. 드로어는 layout_gravity
속성으로 위치를 지정할 수 있다.
드로어 상태 관리: DrawerListener
를 사용하여 드로어의 열림/닫힘 상태를 추적할 수 있다. 이를 통해 드로어가 열리거나 닫힐 때 특정 작업을 수행할 수 있다.
툴바와의 통합: DrawerLayout
은 툴바와 쉽게 통합할 수 있어, 드로어 아이콘을 툴바에 배치하고, 클릭 시 드로어가 열리도록 설정할 수 있다. 보통 ActionBarDrawerToggle
을 사용하여 이 작업을 수행한다.
출처
https://stackoverflow.com/questions/26728651/recyclerview-vs-listview