【问题标题】:Activity transition happening too quickly for animation对于动画来说,活动过渡发生得太快
【发布时间】:2018-07-04 16:16:45
【问题描述】:

编辑

问题可以在这里看到:

我有一个登录屏幕和一个注册屏幕。

当用户点击注册按钮时 - 我想从登录屏幕滑到注册屏幕。我有这个工作正常。

当用户在注册屏幕上按下后退按钮时,我想滑回登录屏幕。

这似乎工作正常,但登录屏幕活动在动画完成之前加载到旧活动中。

LoginActivity.java

public void createAccount(View view) {
    Log.d(TAG, "Create Account clicked");
    Intent intent = new Intent(getApplicationContext(), SignupActivity.class);
    startActivityForResult(intent, REQUEST_SIGNUP);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}

RegisterActivity.java

@Override
public void onBackPressed() {
    super.onBackPressed();
    Log.d(TAG, "Back clicked - return to login");
    finish();
    overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
}

push_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
</set>

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-100%p"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
</set>

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator" />
</set>

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:fromXDelta="-100%p"
        android:toXDelta="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator" />
</set>

注意

我已经尝试了以下两种解决方案,但都不适用于我的情况。

overridePendingTransition shows second activity too quickly

【问题讨论】:

  • downvoter 可以解释推理吗?
  • 用户返回时的动画应该是什么?
  • 因此,当用户在第一个屏幕上单击“创建帐户”时,注册活动应该从右向左拉。当用户点击返回时——登录屏幕应该从左向右拉——与第一个动画相反。

标签: android android-animation android-xml overridependingtransition


【解决方案1】:

push_right_in.xmlpush_right_out.xml 好像搞混了。

push_right_in.xml 应该在屏幕外开始:android:fromXDelta="-100%p" 并在屏幕上结束:android:toXDelta="0"

push_right_out.xml 应该在屏幕上开始:android:fromXDelta="0" 并在屏幕外结束:android:toXDelta="100%p"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    相关资源
    最近更新 更多