Глюк в viewPager - PullRequest
       24

Глюк в viewPager

0 голосов
/ 17 февраля 2019

Я сделал вид слайдер пейджер, который макет слайдера.Я добавил параллакс, как преобразование к нему.

Код:

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>

Я сделал просмотр изображения в масштабе 1,2, потому что параллаксдал бы мне пустые края при смахивании.

Но изображения не умещаются внутри своего макета и переполняются.

enter image description here

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Узнал сам!Я должен был установить cropToPadding как true для переполняющегося изображения.

0 голосов
/ 17 февраля 2019
<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 вы можете установить границы представления для другого представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...