【问题标题】:Slide animation from bottom and up between activities在活动之间从底部向上滑动动画
【发布时间】:2020-01-17 00:47:40
【问题描述】:

我成功创建了活动之间的滑动动画,其中新活动从底部向上滑动。问题:当向上滑动时,它会将旧的活动“推”到外面以占据它的空间。我想创建不移动旧 Activity 的动画,而只是在旧 Activity 上从底部向上滑动,而旧 Activity 静止不动。

slide_in_up.xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
</set>

slide_out_down.xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="0"
        android:toYDelta="-100%p" />
</set>

使用幻灯片开始新活动的功能:

override fun startEditProfile() {
    startActivity(EditProfileActivity.newIntent(this))
    overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_down)
}

是否可以在旧 Activity 不动的情况下让新 Activity 从下到上滑动?

【问题讨论】:

    标签: android android-animation


    【解决方案1】:

    查看overridePendingTransition两个参数的源码注释:

     @param enterAnim A resource ID of the animation resource to use for
     the incoming activity.  Use 0 for no animation.
     @param exitAnim A resource ID of the animation resource to use for
     the outgoing activity.  Use 0 for no animation.
    

    因此,如果您希望退出(旧)活动不移动,请将退出动画更改为该活动

    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromXDelta="0%"
            android:toXDelta="0%"
            android:fromYDelta="0%"
            android:toYDelta="0%" />
    </set>
    

    或设置 0 表示没有动画

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2015-11-09
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多