5

我刚刚开始使用 appcompat 支持库为 Android 5.0 重建我的应用程序。我刚刚完成了一个以共享元素为特色的过渡。它似乎运作良好,直到我添加一个webview.

我制作了一个视频来演示故障。 https://www.youtube.com/watch?v=MuuGZc0Vwow

如您所见,当我打开活动时一切都很好。当我关闭它时,就会发生故障。正如你所看到的,所有元素都像它们应该的那样淡出,除了 web 视图。它一直挂在那里直到动画结束,有点破坏动画的整个平滑度。

我该如何解决?如果它可能与我设置的方式有关,我很乐意分享一些代码。

提前致谢。

4

2 回答 2

7

出现这种故障的原因是因为WebView extends AbsoluteLayout. 默认情况下ViewGroup,不是“过渡组”且没有背景可绘制对象的 s不会被活动的窗口内容过渡动画。为了使用 修复故障WebView,您需要调用webView.setTransitionGroup(true)(或使用 设置 XML 中的属性android:transitionGroup="true")。这应该导致WebView作为活动转换的一部分逐渐消失,而不是简单地坐在那里直到在转换结束时突然移除。

至于WebView您收到的“无法创建图层”错误,我想这是因为过渡框架会在过渡期间自动创建硬件层,WebView并且由于某种原因,框架在尝试创建图层时会崩溃。这听起来像是一个与 Android 的内部图形管道相关的完全独立的问题……我不确定我能否在没有更多信息的情况下给你一个很好的答案,说明为什么会发生崩溃。

这个问题也在这篇博文的底部进行了讨论。

于 2014-12-05T23:15:24.693 回答
0

我在 Marshmallow 版本的 webview 中遇到了这种随机崩溃问题。我有添加属性android:transitionGroup="true"。但是崩溃正在发生,之后我 android:hardwareAccelerated="false"在清单中添加了声明该活动的位置。在棉花糖版本和较低版本中也解决了随机崩溃之后。

于 2017-02-14T12:43:14.620 回答