我有这样的雇佣关系: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,它提供自定义独立适配器(用于自定义列表视图项)。
感谢您的帮助!
答案 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()
。