【问题标题】:The animation of switching between Activities does not work if the Activity has the "taskAffinity =""" parameter or before Picture in Picture如果Activity有\"taskAffinity =\"\"\"参数或者在画中画之前,Activity之间切换的动画不起作用
【发布时间】:2023-01-14 04:12:12
【问题描述】:

在我需要使用“taskAffinity="""将 Activity 移动到单独的进程后,我在样式中指定的过渡动画停止工作。我尝试使用 overridePendingTransition 和 ActivityOptions.makeCustomAnimation 但这没有帮助。此外,在我切换到画中画模式然后再次返回后,我在代码中使用 overridePendingTransition 设置的动画不起作用。据我了解,关键是在不同进程之间切换时动画不起作用,但在我看来,必须有某种方法可以做到这一点。如果有人知道在 aActivity 之间移动时如何实现动画,当他们有不同的进程时,我将非常感激。

显示我的活动:

<activity
      android:name=".modules.media.video.player.VideoPlayerActivity"
      android:configChanges="screenSize|smallestScreenSize|screenLayout"
      android:exported="false"
      android:launchMode="singleTask"
      android:resizeableActivity="true"
      android:taskAffinity =""
      android:supportsPictureInPicture="true"
      android:theme="@style/VideoPlayerTheme"
      tools:targetApi="n">

【问题讨论】:

    标签: android


    【解决方案1】:

    当您为 Activity 指定“taskAffinity”属性时,它会导致 Activity 被放置在一个单独的任务和进程中,与主应用程序任务和进程分开。这可能会导致过渡动画出现问题,因为动画是在两个不同的任务和进程之间执行的,系统可能无法正确处理。

    一种可能的解决方案是在启动新 Activity 时使用“startActivityForResult()”方法而不是“startActivity()”。这将使新 Activity 保持在与调用 Activity 相同的任务和进程中,从而允许过渡动画正常工作。

    另一种解决方案是在启动新 Activity 时使用“FLAG_ACTIVITY_NEW_TASK”和“FLAG_ACTIVITY_CLEAR_TASK”标志。这将清除当前任务并为新 Activity 启动新任务,从而使过渡动画正常工作。

    val intent = Intent(this, VideoPlayerActivity::class.java)
    

    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK 或 Intent.FLAG_ACTIVITY_CLEAR_TASK 开始活动(意图)

    关于切换到画中画模式后的动画问题,这是Android平台的一个已知限制,即从画中画模式切换到全屏模式时动画不起作用。解决这个问题的一种方法是使用“setPictureInPictureParams()”方法将画中画窗口配置为与全屏窗口具有相同的尺寸,然后在全屏和画中画之间切换时使用动画图片模式

    val params = PictureInPictureParams.Builder()
            .setAspectRatio(Rational(width, height))
            .build()
    

    设置画中画参数(参数)

    值得注意的是,这只是一种解决方法,因为真正的解决方案是不使用画中画模式,因为如果您想获得良好的动画用户体验,不建议使用此功能。

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2019-11-30
      相关资源
      最近更新 更多