안드로이드스튜디오

[안드로이드/kotlin] 스와이핑해서 화면 전환하는 viewpager2 적용하기

eunda_coding 2024. 8. 27. 14:02

한 화면에서 좌우로 스와이핑하여 다른 화면이 보여지는 것을 구현해야한다.

 

viewPager2 추가

 

보여줄 fragment에 viewpager2를 추가한다.

<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

 

 

2개의 화면을 보여줄 예정이므로 fragment_one, fragment_two 추가

각 Fragment.kt 파일과 xml파일을 연결한다.

Adapter 생성
class MenuContentAdapter(fragment: MenuContentFragment) : FragmentStateAdapter(fragment) {
    override fun getItemCount(): Int = 2 // 프래그먼트 수

    override fun createFragment(position: Int): Fragment {
        return when (position) {
            0 -> LocationFragment()
            1 -> MenuFragment()
            else -> throw IllegalArgumentException("Invalid position")
        }
    }
}

getItemCount로 viewpager내 보여줄 fragment 갯수 지정

createFragment에서 각 Fragment 를 연결시켜주면된다.