切换活动时如何添加过渡?

我正在尝试构建一个应用程序,最终我设法实现了一个导航栏,该导航栏使用库(https://github.com/ittianyu/BottomNavigationViewEx)在活动之间切换。
一切正常,但是当它在活动之间切换时,动画非常糟糕。

我找到了一个教程,他们使用overridePendingTransition()添加动画,但由于某种原因,我不能在这里使用它。

我已经创建了 4 个动画: slideleft、slideleftout、slideright、sliderightout 并添加了变量num以跟踪当前选择的活动,并且我添加了一些 If 语句来检查每种情况应该播放什么动画(至少这就是我想要做的)。

我应该如何在这里实现这些动画?


慕勒3428872
浏览 78回答 2
2回答

慕仙森

您不能直接使用overridePendingTransition()in 因为它是来自Activity(参考这里)的方法。您将需要对调用活动的引用才能像这样调用:activity.overridePendingTransition(R.anim.enter, R.anim.exit);或者,Bundle如果您的最低 SDK 版本为Build.VERSION_CODES.JELLY_BEAN. 此类用法的文档可在此处 使用此方法签名。

ibeautiful

在 res/anim 文件夹中添加这两个文件。R.anim.fade_in<?xml version="1.0" encoding="utf-8"?><alpha&nbsp; &nbsp; xmlns:android="http://schemas.android.com/apk/res/android"&nbsp; &nbsp; android:interpolator="@android:anim/accelerate_interpolator"&nbsp; &nbsp; android:fromAlpha="0.0"&nbsp; &nbsp; android:toAlpha="1.0"&nbsp; &nbsp; android:duration="500" />R.anim.fade_out&nbsp; &nbsp; <?xml version="1.0" encoding="utf-8"?><alpha&nbsp; &nbsp; xmlns:android="http://schemas.android.com/apk/res/android"&nbsp; &nbsp; android:interpolator="@android:anim/accelerate_interpolator"&nbsp; &nbsp; android:fromAlpha="1.0"&nbsp; &nbsp; android:toAlpha="0.0"&nbsp; &nbsp; android:duration="500" />Java 代码&nbsp;// Check if we're running on Android 5.0 or higher&nbsp; &nbsp; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {&nbsp; &nbsp; &nbsp; &nbsp; //Swap with transition&nbsp; &nbsp; &nbsp; &nbsp; //start new activity here&nbsp; &nbsp; activity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; // Swap without transition&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java