Синхронная прокрутка двух ViewPager

1,00
р.
Имеется два ViewPager. Они имеют разную ширину. Второй ViewPager должнен пролистываться только тогда, когда первый пролистывается. Одновременное пролистывание сделать получилось, но кода оно завершается, то у второго ViewPager возвращается контент первого слайда.
firstViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) { secondViewPager.scrollTo((int) (positionOffsetPixels * scale), 0) }
@Override public void onPageSelected(final int position) {}
@Override public void onPageScrollStateChanged(final int state) {} })
Может есть другой способ это сделать?

Нашел вот такой вот вариант. Но если начать перемещать влево, а потом, не отпуская пальца, вправо, то у secondViewPager страница сразу же меняется на следующую. Попытка исправить ни к чему не привела
firstViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { private int mLastScrollPosition private int mLastPagePosition @Override public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) { if (secondViewPager.isFakeDragging()) { final int scaledPositionOffsetPixels = (int) (positionOffsetPixels * scale) int absoluteOffsetPixels = scaledPositionOffsetPixels if (mLastPagePosition != position) { absoluteOffsetPixels += (position - mLastPagePosition) * secondViewPager.getWidth() mLastPagePosition = position } secondViewPager.fakeDragBy((mLastScrollPosition - absoluteOffsetPixels)) mLastScrollPosition = scaledPositionOffsetPixels } }
@Override public void onPageSelected(final int position) { }
@Override public void onPageScrollStateChanged(final int state) { switch (state) { case ViewPager.SCROLL_STATE_DRAGGING: if (!secondViewPager.isFakeDragging()) secondViewPager.beginFakeDrag() break case ViewPager.SCROLL_STATE_SETTLING: case ViewPager.SCROLL_STATE_IDLE: if (secondViewPager.isFakeDragging()) { secondViewPager.endFakeDrag() mLastScrollPosition = 0 } break } } })
Обновление
Пришлось отказаться от этой идеи и делать один ViewPager. Жаль, выглядело бы красиво

Ответ
Единственный вариант решения, который приходит в голову — это попробовать написать свою View. View будет состоять из двух частей: верхняя, уменьшенная и вторая — увеличенная. На первой будет стоять MotionEventListener, который будет реагировать на касания и при каждом "пролистаном" пикселе будет пролистывать содержание второй части на 4 пикселя (множитель увеличения будет варьироваться в зависимости от зума второй части).
Свое изучение написания кастомных View следует начать от сюда — ссылка.

Но, мне кажется, что стоит еще раз подумать над тем, зачем это делать. Может будет достаточно увеличения текста или растяжения изображения?