Ich versuche, die AHBottomNavigation (https://github.com/aurelhubert/ahbottomnavigation) zu verwenden und ich befolge seine Demo-App, um mein eigenes zu erstellen.ViewPager mit setCurrentItem (position, false) aber mit Fade-In-Übergang?
In der Demo-App verwendet ViewPager und FragmentPagerAdapter, um zwischen Fragmenten zu wechseln, und alles funktioniert perfekt.
Mein Problem ist, ich will ein Fade-In Fade-Out-Übergang zwischen den Fragmenten hinzuzufügen, hatte ich versucht, dies zu ändern: hinzugefügt
viewPager.setCurrentItem(position, false);
für
viewPager.setCurrentItem(position);
Und ich hatte in dieser meiner MainActivity:
viewPager.setPageTransformer(false, new FadePageTransformer());
...
public class FadePageTransformer implements ViewPager.PageTransformer {
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));
}
}
}
es funktioniert tatsächlich, aber wenn ich aus dem ersten Fragmente bis zum letzten gehen will, es zeigt alle Fragmente zwischen ihnen, wie eine Bildlaufansicht.
Es ist ein Verfahren, in der Fragment-Klasse (DemoFragment), dass ich denke, dass ich für eine Fade-In Fade-Out-Übergang verwenden kann, aber ich habe keine Ahnung, wie es zu implementieren, ist dies die Methode:
/**
* Called when a fragment will be displayed
*/
public void willBeDisplayed() {
// Do what you want here, for example animate the content
}
Sorry, ich bin neu in Android, ich lerne immer noch, und ich hoffe, Sie können mir helfen, danke!
UPDATE:
ich eine Cross-Fade-Animation zwischen den Fragmenten hinzugefügt werden soll, wie das Beispiel in Material Design (https://www.google.com/design/spec/components/bottom-navigation.html#bottom-navigation-behavior)
Übergang zwischen aktiven und inaktiven Ansichten, die eine grenzüberschreit mit verblassen Animation.