Как преобразовать этот горизонтальный трансформатор ViewPager в вертикальный трансформатор? - PullRequest
0 голосов
/ 02 марта 2019

это код, который у меня есть. Он отлично работает для анимации горизонтального преобразования.Я хочу преобразовать анимацию перехода ViewPager по вертикали.

public class AccordionPageTransformer implements ViewPager.PageTransformer {
@Override
public void transformPage(View page, float position) {
    // Counteract the default slide transition
    page.setTranslationX(-position * page.getWidth());

    page.setPivotX(position < 0 ? 0 : page.getWidth());
    page.setScaleX(1 - Math.abs(position));
}}

1 Ответ

0 голосов
/ 02 марта 2019

Попробуйте это для ViewPager,

        if (position < -1) { 
            page.setAlpha(0);

        } else if (position <= 1) { 
            page.setAlpha(1);

            // Counteract the default slide transition
            page.setTranslationX(page.getWidth() * -position);

            //Set Y position to swipe in from top
            float yPosition = position * page.getHeight();
            page.setTranslationY(yPosition);

        } else { 
            page.setAlpha(0);
        }

Или вы также можете использовать ViewPager2 Он обеспечивает однострочный код для вертикальной прокрутки,

myViewPager2.setOrientation(ViewPager2.ORIENTATION_VERTICAL); 
...