ViewPager animation fade in/out instead of slide
This should work better for the fade in/out transform:
public void transformPage(View view, float position) { view.setTranslationX(view.getWidth() * -position); if(position <= -1.0F || position >= 1.0F) { view.setAlpha(0.0F); } else if( position == 0.0F ) { view.setAlpha(1.0F); } else { // position is between -1.0F & 0.0F OR 0.0F & 1.0F view.setAlpha(1.0F - Math.abs(position)); }}
Based on a @murena's answer, this should work better for the fade in/out transform. At the end of animation the position is restored to default value.
public void transformPage(View view, float position) { if(position <= -1.0F || position >= 1.0F) { view.setTranslationX(view.getWidth() * position); view.setAlpha(0.0F); } else if( position == 0.0F ) { view.setTranslationX(view.getWidth() * position); view.setAlpha(1.0F); } else { // position is between -1.0F & 0.0F OR 0.0F & 1.0F view.setTranslationX(view.getWidth() * -position); view.setAlpha(1.0F - Math.abs(position)); }}
Fade according to Google:https://developer.android.com/training/animation/reveal-or-hide-view
viewPager.setPageTransformer(false, new ViewPager.PageTransformer() { @Override public void transformPage(@NonNull View page, float position) { page.setAlpha(0f); page.setVisibility(View.VISIBLE); // Start Animation for a short period of time page.animate() .alpha(1f) .setDuration(page.getResources().getInteger(android.R.integer.config_shortAnimTime)); }});