Мне нужно сделать эту анимацию по вертикали ViewPager
:
https://www.youtube.com/watch?v=wuE-4jjnp3g
это то, что я пробовал до сих пор:
viewPager = (VerticalViewPager) rootView.findViewById(R.id.viewpager);
viewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(View page, float position) {
if (position >= 0.5F && position <= 1F) {
float progressStart = 0.5f;
float progressEnd = 1f;
float progressDelta = progressEnd - progressStart;
float progress = (position - progressStart)/progressDelta;
if(progress>1)progress=1;
if(progress<0)progress=0;
float endValue = 1f;
float startValue = 0.8f;
float delta = endValue - startValue;
progress = 1-progress;
float currentScale = startValue + delta*progress;
ViewCompat.setPivotY(page,0);
ViewCompat.setScaleX(page, currentScale);
ViewCompat.setScaleY(page, 0.9F);
ViewCompat.setTranslationY(page, 0);
} else {
ViewCompat.setScaleX(page, 1.0F); //- width
ViewCompat.setScaleY(page, 0.9F); //- height
}
}
});
это результат:
https://www.youtube.com/watch?v=G9W2lCKP-_s
Я использую копию оригинального ViewPager с вертикальной ориентацией, чтобы увидеть код: https://github.com/Devlight/InfiniteCycleViewPager/blob/master/infinitecycleviewpager/src/main/java/com/gigamole/infinitecycleviewpager/VerticalViewPager.java
Очевидно, это даже не близко, мне нужно предварительно просмотреть следующую страницу и сделать две страницы ближе.
Пожалуйста помоги
Спасибо.
true
, пока вы добавляетеviewPager.setPageTransformer(true, new ViewPager.PageTransformer...
, и добавить строкуViewCompat.setPivotX(page,page.getWidth()/2);
вtransformPage
, и вы можете удалить эту строкуViewCompat.setTranslationZ(page, (currentTranslation));
, поскольку она находится в обратном порядке, пока мы добавляем преобразователь страницы с истинным (reverseDrawingOrder
) аргументом 30.05.2017