1

我设法在 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)
    }
4

0 回答 0