dependency)
implementation("androidx.viewpager2:viewpager2:$version")
//선택된 페이지가 바꼈을때 콜백되는 인터페이스
abstract class ViewPager2.OnPageChangeCallback
//현 페이지가 스크롤될때 콜백되는 인터페이스
interface ViewPager2.PageTransformer
ViewPager2(context: Context)
ViewPager2(context: Context, attrs: AttributeSet?)
ViewPager2(context: Context, attrs: AttributeSet?, defStyleAttr: Int)
@RequiresApi(value = 21)
ViewPager2(
context: Context,
attrs: AttributeSet? //컴파일된 xml 파일에서 데이터를 효율적으로 가져올 수 있게 하는 인터페이스
defStyleAttr: Int, // 현 테마가 참조하는 스타일 리소스 속성
defStyleRes: Int // 뷰의 기본 스타일를 참조하는 속성
)
//해당 viewpager에 ItemDecoration을 추가
fun addItemDecoration(decor: RecyclerView.ItemDecoration)
fun addItemDecoration(decor: RecyclerView.ItemDecoration, index: Int)
//페이크 드래그 시작 및 종료
fun beginFakeDrag(): Boolean
fun endFakeDrag(): Boolean
//해당 픽셀로 드래그
fun fakeDragBy(offsetPxFloat: @Px Float): Boolean
//페이크 드래그 중인가?
fun isFakeDragging(): Boolean
// 수평, 수직으로 스크롤할 수 있는가?
fun canScrollHorizontally(direction: Int): Boolean
fun canScrollVertically(direction: Int): Boolean
// RecyclerView.Adpter의 setter, getter
fun setAdapter(adapter: RecyclerView.Adapter?)
fun getAdapter(): RecyclerView.Adapter?
// 현 페이지 index 반환. 비었거나 adapter가 set되지 않았으면 0 반환
fun getCurrentItem(): Int
// Decoration 중 index에 있는 아이템 반환
fun getItemDecorationAt(index: Int): RecyclerView.ItemDecoration
// Decoration의 총 개수
fun getItemDecorationCount(): Int
//Decoration 아이템 제거
fun removeItemDecoration(decor: RecyclerView.ItemDecoration): Unit
fun removeItemDecorationAt(index: Int)
// 현 페이지의 양쪽 페이지들을 몇개까지 메모리에 올릴지 정함.
//ex) limit=2 면 총 5개의 페이지가 메모리에 올라와있음.
fun setOffscreenPageLimit(limit: Int)
fun getOffscreenPageLimit(): Int
// ViewPager의 orientation을 set
fun setOrientation(orientation: Int): Unit
fun getOrientation(): Int
// ViewPager의 현 스크롤 상태를 반환
// SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
fun getScrollState(): Int
//모든 item들을 무효화하고 requestLayout을 호출한다.
fun invalidateItemDecorations()
// 스크롤 기능의 활성화 여부 결정
fun setUserInputEnabled(enabled: Boolean)
fun isUserInputEnabled(): Boolean
// 페이지가 바뀔때마다 호출되는 콜백 인터페이스 세팅
fun registerOnPageChangeCallback(callback: ViewPager2.OnPageChangeCallback)
// PageTransformer 인터페이스를 세팅
fun setPageTransformer(transformer: ViewPager2.PageTransformer?)
// PageTransformer 호출
fun requestTransform()
// 선택된 item을 설정. 즉 page 이동이 가능
fun setCurrentItem(item: Int)
fun setCurrentItem(item: Int, smoothScroll: Boolean)