diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java index 00579f74fc..f02e93dcca 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java @@ -95,6 +95,7 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.PriorityQueue; @@ -152,7 +153,7 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan private Map mContainerInfo; public boolean isNewFsEnd = false; - private List componentsInfoExceedGPULimit = new ArrayList<>(); + private List componentsInfoExceedGPULimit = new LinkedList<>(); /** * bundle type diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java index 0708a1b9d7..87f755760c 100644 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java @@ -3001,9 +3001,9 @@ private void reportIfReachGPULimit(String instanceId,String ref,GraphicSize layo if (component.getBorder() != null) { ext.put("component.border", component.getBorder().toString()); } - Map map = new JSONObject(); + JSONObject map = new JSONObject(); map.putAll(ext); - WXSDKManager.getInstance().getSDKInstance(instanceId).setComponentsInfoExceedGPULimit((JSONObject)map); + WXSDKManager.getInstance().getSDKInstance(instanceId).setComponentsInfoExceedGPULimit(map); if(shouldReportGPULimit()) { WXExceptionUtils.commitCriticalExceptionRT(instanceId , WXErrorCode.WX_RENDER_WAR_GPU_LIMIT_LAYOUT, diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java index d803784f90..fa00470081 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java @@ -1707,9 +1707,9 @@ public void setOpacity(float opacity) { if (isLayerTypeEnabled()) { mHost.setLayerType(View.LAYER_TYPE_HARDWARE, null); } - if(shouldCancelHardwareAccelerate() && limit > 0 && (getLayoutHeight() > limit || + if(isLayerTypeEnabled() && shouldCancelHardwareAccelerate() && limit > 0 && (getLayoutHeight() > limit || getLayoutWidth() > limit)){ - mHost.setLayerType(View.LAYER_TYPE_SOFTWARE,null); + mHost.setLayerType(View.LAYER_TYPE_NONE,null); } mHost.setAlpha(opacity); }