viewPager 中的故障

Glitch in viewPager

我制作了一个滑块布局的视图寻呼机滑块。我给它添加了类似转换的视差。

代码:

viewPager.setClipToPadding(false);
    viewPager.setPadding(64, 0, 64, 0);
    viewPager.setPageMargin(24);
    viewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
        @Override
        public void transformPage(@NonNull View view, float v) {
            if (v >= -1 && v <= 1) {
                view.findViewById(R.id.imageView_backdrop).setTranslationX(-v*(viewPager.getWidth()/2));
            } else {
                view.setAlpha(1);
            }
        }
    });

布局:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
    android:id="@+id/imageView_backdrop"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:scaleType="centerCrop"
    android:scaleX="1.2"
    android:scaleY="1.2"
    android:src="@drawable/musical"
    app:layout_constraintDimensionRatio="H,16:9"
    app:layout_constraintEnd_toEndOf="@id/imageView_overlay"
    app:layout_constraintStart_toStartOf="@id/imageView_overlay"
    app:layout_constraintTop_toTopOf="@id/imageView_overlay" />

<ImageView
    android:id="@+id/imageView_overlay"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:alpha="0.65"
    android:src="@drawable/bg_rounded_rectangle"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintDimensionRatio="H,16:9"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

<...>

</android.support.constraint.ConstraintLayout>

我将 imageview 缩放为 1.2,因为视差会在滑动时给我空白边缘。

但是图像不适合其布局,并且溢出。

请帮忙!

<ImageView
    android:id="@+id/imageView_overlay"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:alpha="0.65"
    android:src="@drawable/bg_rounded_rectangle"
    app:layout_constraintBottom_toBottomOf="@+id/imageView_backdrop"
    app:layout_constraintEnd_toEndOf="@+id/imageView_backdrop"
    app:layout_constraintStart_toStartOf="@+id/imageView_backdrop"
    app:layout_constraintTop_toTopOf="@+id/imageView_backdrop"/>

在 ConstraintLayout 中,您可以将视图边界设置为其他视图。

发现自己!对于溢出的 imageView,我必须将 cropToPadding 设置为 true。