【发布时间】:2016-05-31 08:46:53
【问题描述】:
我正在尝试使用 AHBottomNavigation (https://github.com/aurelhubert/ahbottomnavigation),我正在关注它的演示应用程序来制作我自己的应用程序。
在演示应用程序中,它使用 ViewPager 和 FragmentPagerAdapter 在片段之间切换,一切正常。
我的问题是,我想在片段之间添加一个淡入淡出的过渡,我试图改变这个:
viewPager.setCurrentItem(position, false);
为
viewPager.setCurrentItem(position);
我已经在我的 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));
}
}
}
它确实有效,但如果我想从第一个片段转到最后一个片段,它会显示它们之间的所有片段,就像滚动视图一样。
它在Fragment类(DemoFragment)中有一个方法,我想我可以用它来进行淡入淡出转换,但是我不知道如何实现它,这是方法:
/**
* Called when a fragment will be displayed
*/
public void willBeDisplayed() {
// Do what you want here, for example animate the content
}
对不起,我是android新手,还在学习中,希望您能帮助我,谢谢!
更新:
我想在片段之间添加交叉淡入淡出动画,如 Material Design 中的示例 (https://www.google.com/design/spec/components/bottom-navigation.html#bottom-navigation-behavior)
使用交叉淡入淡出在活动视图和非活动视图之间转换 动画。
【问题讨论】:
标签: android android-fragments android-viewpager transition fade