public final class

CompositePageTransformer

extends java.lang.Object

implements ViewPager2.PageTransformer

 java.lang.Object

↳androidx.viewpager2.widget.CompositePageTransformer

Gradle dependencies

compile group: 'androidx.viewpager2', name: 'viewpager2', version: '1.1.0-beta01'

  • groupId: androidx.viewpager2
  • artifactId: viewpager2
  • version: 1.1.0-beta01

Artifact androidx.viewpager2:viewpager2:1.1.0-beta01 it located at Google repository (https://maven.google.com/)

Overview

Allows for combining multiple ViewPager2.PageTransformer objects.

Summary

Constructors
publicCompositePageTransformer()

Methods
public voidaddTransformer(ViewPager2.PageTransformer transformer)

Adds a page transformer to the list.

public voidremoveTransformer(ViewPager2.PageTransformer transformer)

Removes a page transformer from the list.

public voidtransformPage(View page, float position)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public CompositePageTransformer()

Methods

public void addTransformer(ViewPager2.PageTransformer transformer)

Adds a page transformer to the list.

Transformers will be executed in the order that they were added.

public void removeTransformer(ViewPager2.PageTransformer transformer)

Removes a page transformer from the list.

public void transformPage(View page, float position)

Source

/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.viewpager2.widget;

import android.view.View;

import androidx.annotation.NonNull;
import androidx.viewpager2.widget.ViewPager2.PageTransformer;

import java.util.ArrayList;
import java.util.List;

/**
 * Allows for combining multiple {@link PageTransformer} objects.
 *
 * @see ViewPager2#setPageTransformer
 * @see MarginPageTransformer
 */
public final class CompositePageTransformer implements PageTransformer {
    private final List<PageTransformer> mTransformers = new ArrayList<>();

    /**
     * Adds a page transformer to the list.
     * <p>
     * Transformers will be executed in the order that they were added.
     */
    public void addTransformer(@NonNull PageTransformer transformer) {
        mTransformers.add(transformer);
    }

    /** Removes a page transformer from the list. */
    public void removeTransformer(@NonNull PageTransformer transformer) {
        mTransformers.remove(transformer);
    }

    @Override
    public void transformPage(@NonNull View page, float position) {
        for (PageTransformer transformer : mTransformers) {
            transformer.transformPage(page, position);
        }
    }
}