class WapplePageTransformer : ViewPager2.PageTransformer {
override fun transformPage(page: View, position: Float) {
with(page) {
val translate = resources.getDimension(R.dimen.view_pager_translate)
val scale = 0.88f
when {
position < -1 -> alpha = 0f
position > 1 -> alpha = 0f
else -> {
alpha = 1f
translationX = position * translate
scaleY = max(scale, 1 - abs(position))
}
}
}
}
}
Kotlin
복사
class HomeWappleAdapter : ListAdapter<Int, HomeWappleAdapter.HomeWappleViewHolder>(diffUtil) {
init {
submitList(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9))
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeWappleViewHolder {
val inflater = LayoutInflater.from(parent.context)
val binding = ItemHomeWappleBinding.inflate(inflater, parent, false)
return HomeWappleViewHolder(binding)
}
override fun onBindViewHolder(holder: HomeWappleViewHolder, position: Int) {
}
class HomeWappleViewHolder(binding: ItemHomeWappleBinding) :
RecyclerView.ViewHolder(binding.root)
companion object {
private val diffUtil = object : DiffUtil.ItemCallback<Int>() {
override fun areItemsTheSame(oldItem: Int, newItem: Int): Boolean {
return oldItem == newItem
}
override fun areContentsTheSame(oldItem: Int, newItem: Int): Boolean {
return oldItem == newItem
}
}
}
}
Kotlin
복사