在活动之间切换:不要隐藏以前的活动

Dro*_*mon 7 animation android android-activity

这里有一个相当直截了当的问题,但我似乎找不到已经问过这个问题的人了.很可能没有使用正确的关键字.

无论如何,这是我的场景:

我正在启动一个新的活动,其中我显示了一个Web视图.我调用了overridePendingTransition以便在切换到新活动时获得我想要的动画,这很好(至少,动画部分工作正常).然而,有一些东西会影响效果.

我想要的是让webview从底部滑过上一个活动,当用户按下时,它应该向下滑出站点.第二部分就像一个魅力,但第一部分并不完全是我想要的.

在触发新活动时,旧的活动立即被隐藏,并且在其位置是黑色,因此看起来webview滑过黑色.我想让它在后台留下以前的活动,而不是隐藏它,所以webview滑过它.这可能吗?

谢谢!

Myl*_*ett 11

我来这里寻找同样的事情,但目前的答案没有帮助.我希望这会有所帮助,在提出问题四个月后!

在我看来,这是由于Android平台中的一个错误,因为:

  • 只有当exitAnim为0时才会发生
  • 它只发生在'translate'元素中.'alpha'元素(淡入淡出,淡出)工作正常.

这是我的解决方法:

@Override
protected void onResume() {
    overridePendingTransition(R.anim.mu_slide_in_left, R.anim.mu_no_anim);
    super.onResume();
}

@Override
protected void onPause() {
    overridePendingTransition(0, R.anim.mu_slide_out_right);
    super.onPause();
}
Run Code Online (Sandbox Code Playgroud)

哪里mu_no_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/accelerate_interpolator"
   android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="100000" />
Run Code Online (Sandbox Code Playgroud)

因此,通过指定可靠的alpha机制将其从alpha 1淡化为alpha 1超过100秒,这迫使外出活动保持可见 - 换句话说,只是让它完全可见.

解决方法并不完美.例如,如果从对话框中调用了新的活动,则对话框看起来好像在活动滑动到位时被解除 - 但在关闭该活动后它将再次返回.


tig*_*chi 1

创建实现所需效果的自定义过渡动画 XML 资源文件,并在启动下一个 Activity 之前调用 Activity.overridePendingTransition。

  • 好吧,这有点愚蠢,但我只是创建了一个基本上不执行任何操作的动画,并且持续时间与 Web 视图的动画相同。(我只是将 xDelta 从 0% 翻译为 0%,这意味着,显然,它不会去任何地方,但它仍然会在背景中绘制,而不是变成黑色) (4认同)