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。
我制作了一个滑块布局的视图寻呼机滑块。我给它添加了类似转换的视差。
代码:
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。