首页 > 解决方案 > 实现 ViewPager2 的问题。正确的方式

问题描述

我正在建造这个窗口

问题:

我使用了复合变形金刚让它看起来像这样,并给出了一些 paddingStart 和 paddingEnd。但只有当我滑动站在中心的项目时它才有效。当我在空白区域或侧面项目上滑动时,它不起作用(我的意思是,我根本无法滑动)。

我的viewPager2:

        <androidx.viewpager2.widget.ViewPager2
            android:id="@+id/apod_view_pager"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="40dp"
            android:layout_marginBottom="40dp"
            android:paddingStart="60dp"
            android:paddingEnd="60dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toBottomOf="@id/container_fragment_gallery" />

转换:

    binding.apodViewPager.clipToPadding = false
    binding.apodViewPager.clipChildren = false
    binding.apodViewPager.offscreenPageLimit = 3
    binding.apodViewPager.getChildAt(0).overScrollMode = RecyclerView.OVER_SCROLL_NEVER
    val compositePageTransformer = CompositePageTransformer()
    compositePageTransformer.addTransformer(MarginPageTransformer(60))
    compositePageTransformer.addTransformer { page, position ->
        val r = 1 - abs(position)
        page.scaleY = 0.9f + r * 0.07f
    }
    binding.apodViewPager.setPageTransformer(compositePageTransformer)

问题: 它应该是那样的还是我可以让它成为我想要的?

标签: androidandroid-viewpager2

解决方案


推荐阅读