【问题标题】:android lollipop animation glitchandroid棒棒糖动画故障
【发布时间】:2015-04-10 18:20:36
【问题描述】:

我在运行 Android 5 (Lollipop) 的设备中的默认布局动画有一个奇怪的行为。我正在使用具有多个片段的活动,这些片段在运行时使用默认片段管理器替换。替换旧片段时,我想使用动画来实现流畅的 ui 流。在棒棒糖之前的设备上,动画按预期工作,但在运行最新操作系统的设备上,片段故障之间的动画:

我尝试使用默认动画xml标签

android:animateLayoutChanges="true"

因为它不起作用,所以我使用此代码更改了它,但没有效果

mTransaction = mManager.beginTransaction();
        mTransaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
        mTransaction.remove(mFragment);
        mTransaction.add(R.id.container, mFragment, "fragment");
        mTransaction.commit();

我已经在不同的设备和安卓模拟器中测试了代码。奇怪的是,它在运行 pre-lollipop 运行最新操作系统 (5.0.1) 的 android 模拟器上的设备上像预期的那样工作。 但它不适用于运行 Android 5.0 的 Nexus 4 和 Nexus 5 等设备

有什么建议吗?有什么帮助吗?

提前致谢

编辑:

根据使用的设备,这似乎是一个错误。我已经在不同的设备(三星 Galaxy S4、HTC(One mini2、One M8、Desire S)、Nexus 4&5)上测试了代码,它只出现在 google nexus 设备上。

编辑

解决动画问题的一种解决方法是通过以下方式禁用硬件加速

<application android:hardwareAccelerated="false">

应用清单中的标签。但是使用它会使应用程序非常慢。

解决方案

解决此问题的解决方案是为活动设置背景图像/颜色/可绘制。 see

【问题讨论】:

  • 我在使用 Nexus 5 时遇到了同样类型的问题:link
  • 你在你的android manifest中声明了opengl的使用吗?我过去在 android
  • 不,我不在这个应用程序中使用 OpenGl,因此清单中没有声明 OpenGl 标签
  • 既然您自己找到了解决方案,请考虑在这里回答您自己的问题

标签: android android-layout android-fragments android-animation android-5.0-lollipop


【解决方案1】:

设置根活动的background 颜色(即使对用户不可见!)并且图形故障消失了。

【讨论】:

  • 此解决方案仅适用于少数设备。 Nexus 5 上仍有此问题
  • 我遇到了同样的故障问题,但使用其 Youtube Api 库播放 youtube 视频。当我改变方向时,问题仅出现在 Nexus 5 中。我解决了每次方向更改时设置根布局的背景颜色的问题。
猜你喜欢
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 2015-06-21
  • 2016-02-28
相关资源
最近更新 更多