我设法在 Android 应用程序中使用 ViewPager2 制作轮播布局。但是当我将应用程序切换到横向模式时,焦点中的较大图像会伸展并且看起来很奇怪。如何使用 viewpager2 在横向创建轮播布局。这就是我为肖像模式实现的方式。
view_pager2.post {
val pageMarginPx = containerView.context.resources.getDimensionPixelOffset(R.dimen.card_margin)
val offsetPx = containerView.context.resources.getDimensionPixelOffset(R.dimen.card_offset)
view_pager2.setPageTransformer { page, position ->
val offset = position * -(2 * offsetPx + pageMarginPx)
when {
position < -1 -> page.translationX = -offset
position <= 1 -> {
val scaleFactor = max(PAGE_SCALE_FACTOR, 1 - abs(position - 0.14f))
page.translationX = offset
page.scaleY = scaleFactor
}
else -> {
page.translationX = offset
}
}
}
view_pager2.currentItem = selectedCardIndex
pageChangedListener.onPageSelected(view_pager2.currentItem)
}