Swipe ViewPager с анимацией на горизонтальной прокрутке RecyclerView — Android

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

Когда я прокручиваю RecyclerView, я обновляю элемент ViewPager с помощью viewPager.setCurrentItem(position). Так что ViewPager переместится в эту позицию.

Он работает нормально. А вот ViewPager не свайпает с анимацией. Он перемещается только в текущую позицию.

Я хочу применить некоторую анимацию, проводя ViewPager по прокрутке RecyclerView. Как я могу реализовать это анимированное поведение?

1
0
544
2

Ответы 2

Попробуйте с

viewPager.setCurrentItem(position, true)

Согласно документация ViewPager позволяет плавно перейти в эту позицию.

Я думаю, вы хотите использовать эффект затухания для анимации. вы должны импортировать этот класс в свой файл...

public class FadePageTransformer implements ViewPager.PageTransformer {
    @Override
    public void transformPage(@NonNull View page, float position) {
        page.setTranslationX(page.getWidth() * -position);
        if (position <= -1.0F || position >= 1.0F) {
            page.setAlpha(0.0F);
        } else if (position == 0.0F) {
            page.setAlpha(1.0F);
        } else {
            // position is between -1.0F & 0.0F OR 0.0F & 1.0F
            page.setAlpha(1.0F - Math.abs(position));
        }
    }
}

И после включения этого класса вам нужно настроить свой пейджер следующим образом...

viewPager.setPageTransformer(false,new FadePageTransformer());

Это поможет вам реализовать эффект анимации в представлении пейджера.

Другие вопросы по теме