我刚刚开始使用appcompat支持库重建我的Android 5.0应用。我刚刚完成了以共享元素为特色的过渡。它似乎运作良好,直到我添加webview
。
我制作了一段视频来展示故障。 https://www.youtube.com/watch?v=MuuGZc0Vwow
正如你所看到的,当我打开活动时,一切都很好。当我关闭它时,会发生故障。正如你所看到的,除了webview之外,所有元素都应该像它们应该的那样淡出。在动画结束之前,它就会挂起,有点破坏了动画的整体流畅度。
我该如何解决这个问题?如果它与我设置的方式有关,我很乐意分享一些代码。
提前致谢。
答案 0 :(得分:6)
发生此故障的原因是WebView extends AbsoluteLayout
。默认情况下ViewGroup
不是"转换组" s且没有背景可绘制的不将被活动的窗口内容转换动画化。为了使用WebView
修复故障,您需要调用webView.setTransitionGroup(true)
(或使用android:transitionGroup="true"
在XML中设置属性)。这应该导致WebView
作为活动过渡的一部分消失,而不是简单地坐在那里直到在过渡结束时被突然删除。
至于"无法为WebView
"创建图层您收到的错误,我想这是因为转换框架在转换期间自动为WebView
创建了一个硬件层,并且由于某种原因,框架在尝试创建图层时崩溃。这听起来像是一个与Android内部图形管道相关的完全独立的问题...我不确定我能否在没有更多信息的情况下为您提供有关崩溃原因的良好答案。
the bottom of this blog post中也讨论了这个问题。
答案 1 :(得分:0)
我在Marshmallow版本的webview中遇到了这种随机崩溃问题。我添加了属性android:transitionGroup="true"
。但是崩溃正在发生,之后我在清单中添加了android:hardwareAccelerated="false"
来声明该活动。之后,随机崩溃也解决了Marshmallow版本和更低版本。