我有3项活动,A,B,C。
从A导航到B,所以我想向左滑动A,向右滑动B. 当他们从B导航回A时,我想将B向右滑动,向左滑动A。
所以感觉他们只是像这样并排滚动3个窗格:
我正在尝试以样式执行此操作:
<style name="MyAnimation.WindowFromRight" parent="@android:style/Animation.Dialog">
<item name="android:windowEnterAnimation">@anim/slide_in_left</item>
<item name="android:windowExitAnimation">@anim/slide_out_right</item>
</style>
<style name="MyAnimation.WindowFromLeft" parent="@android:style/Animation.Dialog">
<item name="android:windowEnterAnimation">@anim/slide_in_right</item>
<item name="android:windowExitAnimation">@anim/slide_out_left</item>
</style>
<style name="ThemeFromLeft" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/MyAnimation.WindowFromLeft</item>
</style>
<style name="ThemeFromRight" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/MyAnimation.WindowFromRight</item>
</style>
但是,B的规则很复杂,因此它不适合上述任何一种样式。当C被带入时B向左滑动,当A被带入时向外滑动到右边。反之亦然,当B进入视野时。
我曾试图overridePendingTransition
处理特殊情况,但似乎存在冲突,动画似乎更复杂,如果是这样的话?
所以我的问题是,这可以用样式来实现吗?
答案 0 :(得分:1)
如果我理解这一点,我认为您最好使用ViewPager,并将您的3个活动转换为3个片段。但是,如果你的应用程序出于某种原因需要这3个活动,你可以通过调用overridePendingTransition(int,int)来实现你想要的。
请注意,第一个int是用于输入动画的预定义xml动画的资源ID,第二个int用于退出动画。在您的情况下,您需要创建4个动画文件(两个用于输入,2个用于退出)并在每个活动中使用适当的文件。您可以查看Android Left to Right slide animation