我有两项活动..活动A和活动B.
当我从活动A开始活动B.我希望活动A对其位置和动画是静态的,仅显示活动B.我如何使用overridingPendingTransition实现此目的?
当点击按钮时,从ActivityA调用以下代码:
活动A:
public void onClick(View v) {
super.onClick(v);
if (v.getId() == R.id.button) {
Intent intent = new Intent();
intent.setClass(getApplicationContext(), MyProfileActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
}
活动A也随活动B滑动。 如何停止活动A的动画并单独启用活动B的动画?
slide_out_up xml如下:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="400"
android:fromYDelta="0%"
android:toYDelta="-100%" />
<alpha
android:duration="400"
android:fromAlpha="1"
android:toAlpha="0" />
</set>
slide_in_up:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="400"
android:fromYDelta="100%"
android:toYDelta="0%" />
<alpha
android:duration="400"
android:fromAlpha="0"
android:toAlpha="1" />
</set>
答案 0 :(得分:7)
最简单的方法是为第二个参数传递0,而不是R.anim.slide_out_up。但是,这通常会导致活动A显示为活动B后面的黑屏,因此作为一种解决方法,您可以提供任何无效的动画 - 例如翻译从0%到0%。
答案 1 :(得分:1)
需要使用它。
slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="400"
android:fromXDelta="-100%"
android:toXDelta="0%" />
<alpha
android:duration="400"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="400"
android:fromXDelta="100%"
android:toXDelta="0%" />
<alpha
android:duration="400"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>