【发布时间】: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