如何FLAG_ACTIVITY_NO_ANIMATION
在AndroidManifest文件中正确使用Intent标志?我认为我的问题是微不足道的,但我找不到好的例子或解决方案.
<intent-filter>
<data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但是,compliator没有报告错误,但是data
不正确.我只想在活动之间切换时禁用动画.我可以getWindow().setWindowAnimations(0);
在onCreate或onResume中使用,但使用flag是更好的方法,不是吗?
我也可以在代码中使用:
Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是我想在Android Manifest中使用这个标志.如果从第二个活动返回到第一个活动,也要禁用动画.
我从活动A调用活动B,其中包含使用以下代码的视频视图:
Intent intent = new Intent(this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
我正在使用Intent.FLAG_ACTIVITY_NO_ANIMATION
以避免在调用新活动时转换动画.但它不适合我和黑屏在转型期间即将到来.有没有办法避免这种过渡动画和黑屏,以便用户不会知道在新屏幕中调用视频视图?
我一直试图在通话时禁用我的活动动画moveTaskToBack()
.我在Marshmallow上测试我的Nexus 7,无论我做什么,"向下滑动"动画仍然存在.
我尝试过的事情:
overridePendingTransition(0, 0);
后moveTaskToBack()
overridePendingTransition(0, 0);
中onDestroy()
和onPause()
getWindow().setWindowAnimations(0);
到上面的地方.
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowExitAnimation">@null</item>
<item name="android:activityOpenEnterAnimation">@null</item>
<item name="android:activityOpenExitAnimation">@null</item>
<item name="android:activityCloseEnterAnimation">@null</item>
<item name="android:activityCloseExitAnimation">@null</item>
Run Code Online (Sandbox Code Playgroud)
以上都不是他们的组合工作.我不在乎.有人可以帮帮我吗?
我需要为应用程序中的所有屏幕禁用活动过渡动画。先前的解决方案适用于所有Android版本:
<style name="base_theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)
...但是对于Android 8“ Oreo”,每次转换(前进或后退)都会导致黑屏闪烁。也就是说,仍然没有任何动画,但是会发生非常烦人的闪烁(90%的机会,约20-30毫秒,整个屏幕)。
根据我的“研究”:
我能找到的唯一解决方案:
定义一个空的过渡动画
<?xml version="1.0" encoding="utf-8"?>
<set />
Run Code Online (Sandbox Code Playgroud)
并将其应用于应用程序中的每个活动(onCreate&finish)
overridePendingTransition(R.anim.animation_activity_none, R.anim.animation_activity_none);
Run Code Online (Sandbox Code Playgroud)
题:
这是对Oreo(即功能),平台错误或应用程序问题的某种新限制吗?还有其他解决方案吗?
[更新]
还有一个发现。确保在主线程上调用Activity finish()和overridePendingTransition()对!否则会发生线程争用并且有时不应用overridePendingTransition。
[更新]
Google已经确认这是Android 8.0中的错误,大概是在8.1中修复的。因此,“空动画”修复将持续数年,直到minSdkVersion == 27。