这里有一个相当直截了当的问题,但我似乎找不到已经问过这个问题的人了。很可能没有使用正确的关键字。
无论如何,这是我的情景:
我正在启动一项新活动,其中我展示了一个网络视图。我调用了overridePendingTransition以便在切换到新活动时获得我想要的动画,这很好(至少,动画部分工作正常)。但是,有一些事情会影响效果。
我想要的是让webview从底部滑过上一个活动,当用户按下时,它应该向下滑出网站。第二部分就像一个魅力,但第一部分并不完全是我想要的。
在触发新活动时,旧活动会立即被隐藏,并且在其位置是黑色,因此看起来webview滑过黑色。我想让它在后台留下以前的活动,而不是隐藏它,所以webview滑过它。这可能吗?
谢谢!
答案 0 :(得分:11)
我来这里寻找同样的事情,但目前的答案没有帮助。我希望这会有所帮助,就在提出问题四个月之后!
在我看来,这是由于Android平台中的一个错误,因为:
以下是我的解决方法:
@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();
}
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" />
因此,通过指定可靠的alpha机制将其从alpha 1淡化为alpha 1超过100秒,这迫使外出活动保持可见 - 换句话说,只是让它完全可见。
解决方法并不完美。例如,如果从对话框中调用了新的活动,则对话框看起来好像在活动滑动到位时被解除 - 但在关闭该活动后它将再次返回。
答案 1 :(得分:1)
它可能很慢,但您是否尝试过为活动使用不同的主题?
检查 this 。
答案 2 :(得分:1)
创建实现所需效果的自定义过渡动画XML资源文件,并在开始下一个Activity之前调用Activity.overridePendingTransition。
答案 3 :(得分:1)
您可以在输入活动的主题中添加一个属性,使窗口保持半透明状态,而不是使用延迟退出动画。这样您就可以看到之前的活动。
<style name="EnteringActivity.Theme" parent="@android:style/Theme.Holo.Light">
[...]
<item name="android:windowIsTranslucent">true</item>
[...]
</style>
注意:如果您要创建对话活动,则还需要活动主题中的以下属性:
<item name="android:windowBackground">@color/transparent</item>
答案 4 :(得分:1)
我遇到了类似的问题,即使用overridependingtransition在从一个活动到另一个活动的滑动过渡中出现黑屏。 我按照下面的方式工作
1)在anim文件夹中创建了一个noanim.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
并使用
overridePendingTransition(R.drawable.lefttorightanim, R.anim.noanim);
第一个参数作为我的原始动画,第二个参数是退出动画作为我的虚拟动画