相关疑难解决方法(0)

没有动画的切换活动

如何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中使用这个标志.如果从第二个活动返回到第一个活动,也要禁用动画.

animation android android-intent android-activity

154
推荐指数
8
解决办法
12万
查看次数

禁用活动之间的过渡动​​画

我从活动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以避免在调用新活动时转换动画.但它不适合我和黑屏在转型期间即将到来.有没有办法避免这种过渡动画和黑屏,以便用户不会知道在新屏幕中调用视频视图?

java android android-intent

27
推荐指数
2
解决办法
4万
查看次数

如何在调用moveTaskToBack()时禁用Activity的动画?

我一直试图在通话时禁用我的活动动画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 android-animation android-activity

5
推荐指数
1
解决办法
722
查看次数

奥利奥(Oreo):禁用活动过渡动画

我需要为应用程序中的所有屏幕禁用活动过渡动画。先前的解决方案适用于所有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毫秒,整个屏幕)。

根据我的“研究”:

  • 它不取决于活动内容,而是与空白活动一起复制
  • 没有任何可以减缓过渡过程的后台工作
  • Intent.FLAG_ACTIVITY_NO_ANIMATION也闪烁
  • overridePendingTransition(0,0)也不起作用

我能找到的唯一解决方案:

定义一个空的过渡动画

<?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。

android android-animation android-8.0-oreo

5
推荐指数
1
解决办法
1781
查看次数