一项活动的两个动画

时间:2013-12-11 23:45:49

标签: android android-animation

我有这样的雇佣关系:activityA< - > activityB< - > activityC。 A是菜单,B是列表,C是列表项的详细信息。现在我想要整合从左到右或从右到左滑动屏幕的动画,具体取决于哪个"方向"用户正在前进。因此,如果他从活动A转到活动B或B转到C,屏幕将从右向左滑动,如果他从C转到B或从B转到A,屏幕将从左向右滑动。

从A到B和B到C我只使用overridePendingTransition()并在startActivity()之后立即使用自定义动画,并且从C到B向后移动我会在onPause中执行相同操作( )活动方法。

我遇到的问题是中间的B活动。如果我将overridePendingTransition()放在onPause()方法中,它将始终运行,无论用户是从B转到A还是从B转到C,所以它总是只在一个方向,即使我单击按钮转到活动C时使用不同的动画。如何检查用户是否按下了一个列表项目以获得C或者是否按下(或其他内容)进入活动A.

如果重要,中间的B活动是FragmentActivity,它带有私有类FragmentPagerAdapter,它提供自定义独立适配器(用于自定义列表视图项)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

将此自定义动画主题应用于所有3项活动:

<style name="customAnimation" parent="@android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/push_left_in</item>
    <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
</style>

push_left_in.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="500"
        android:fromXDelta="100%p"
        android:toXDelta="0%p" />
</set>

push_right_out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="500"
        android:fromXDelta="0%p"
        android:toXDelta="100%p" />

</set>

答案 1 :(得分:0)

overridePendingTransition()方法中删除onPause()