Android视图在启用HA后返回前台时被搞砸了
我不知道为什么在将应用程序从后台带回前台时,视图会被弄乱。只有在我的android清单中启用了硬件加速时,才会发生这种情况。如果禁用HA,则视图还原是正常的 启用HA的Android清单部分:Android视图在启用HA后返回前台时被搞砸了,android,android-layout,android-view,hardware-acceleration,Android,Android Layout,Android View,Hardware Acceleration,我不知道为什么在将应用程序从后台带回前台时,视图会被弄乱。只有在我的android清单中启用了硬件加速时,才会发生这种情况。如果禁用HA,则视图还原是正常的 启用HA的Android清单部分: <application android:name=".MainApplication" android:allowBackup="false" android:hardwareAccelerated="true" ... 在谷歌搜索之后,在将HA
<application
android:name=".MainApplication"
android:allowBackup="false"
android:hardwareAccelerated="true"
...
在谷歌搜索之后,在将HA webview置于前台时恢复HA webview似乎是一个已知的问题:
(这是一个中文网站)
在将应用程序置于后台时,我通过在活动的根视图中循环来禁用所有网络视图中的HA,从而解决了该问题:
public void recursivelyDeactivateHA(ViewGroup parent) {
for (int i = parent.getChildCount() - 1; i >= 0; i--) {
final View child = parent.getChildAt(i);
if (child != null && child instanceof WebView && child.isHardwareAccelerated()) {
Logger.getLogger().e("disable HA for child: " + child);
child.setLayerType(LAYER_TYPE_SOFTWARE, null);
} else if (child instanceof ViewGroup) {
recursivelyDeactivateHA((ViewGroup) child);
}
}
}
然后通过以下方式重新加载所有网络视图:
webView.reload();
经过一些搜索,我发现它与这个问题有关: