我在运行Android 5(Lollipop)的设备中使用默认布局动画有一种奇怪的行为。我正在使用具有多个Fragments的活动,这些活动在运行时使用默认的片段管理器进行替换。当替换旧片段时,我想使用动画来实现流畅的ui流。在pre-lollipop设备上,动画的工作方式与预期的一样,但在运行最新操作系统的设备上,片段故障之间的动画:
我尝试使用默认动画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();
我已经在不同设备和Android模拟器中测试了代码。奇怪的是,它在运行最新操作系统(5.0.1)的运行最新操作系统(5.0.1)的Android模拟器中运行pre-lollipop 和的设备上的工作方式。 但它不适用于运行Android 5.0的Nexus 4和Nexus 5等设备
有什么建议吗?任何帮助?
先谢谢
修改
根据使用的设备,它似乎是一个错误。我已经在不同设备(三星Galaxy S4,HTC(One mini2,One M8,Desire S),Nexus 4& 5)上测试了代码,它只出现在谷歌nexus设备上。
修改
解决动画问题的一种解决方法是通过
禁用硬件加速 <application android:hardwareAccelerated="false">
标签。但使用这个使应用程序非常慢。
解决方案
解决此问题的解决方案是为活动设置背景图像/颜色/可绘制。 see
答案 0 :(得分:2)
设置根活动的background
颜色(当用户不可见时!),图形故障也消失了。