From a82d6850374ddfae5d1b6db052cfe7993e2c378b Mon Sep 17 00:00:00 2001 From: Katherine Jiang Date: Thu, 1 Aug 2019 10:53:22 +0800 Subject: [PATCH] [Android]avoid to call setViewPort repeatedly --- .../sdk/src/main/java/com/taobao/weex/WXSDKInstance.java | 8 +++++++- .../main/java/com/taobao/weex/ui/module/WXMetaModule.java | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) 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 c982e802a6..d07eebd068 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java @@ -452,9 +452,15 @@ public void setUseScroller(boolean use) { } public void setInstanceViewPortWidth(int instanceViewPortWidth) { + setInstanceViewPortWidth(instanceViewPortWidth,false); + + } + public void setInstanceViewPortWidth(int instanceViewPortWidth,boolean fromMetaModule){ this.mInstanceViewPortWidth = instanceViewPortWidth; this.mAutoAdjustDeviceWidth = false; - WXBridgeManager.getInstance().setViewPortWidth(getInstanceId(),mInstanceViewPortWidth); + if(!fromMetaModule){ + WXBridgeManager.getInstance().setViewPortWidth(getInstanceId(), mInstanceViewPortWidth); + } } public void setAutoAdjustDeviceWidth(boolean autoAdjustViewPort){ diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java b/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java index c85fb5e00a..04bb8e4e15 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/module/WXMetaModule.java @@ -60,12 +60,12 @@ public void setViewport(String param) { // todo maybe getString(WIDTH) is "device-height" if (DEVICE_WIDTH.endsWith(jsObj.getString(WIDTH))) { int width = (int)(WXViewUtils.getScreenWidth(cxt)/WXViewUtils.getScreenDensity(cxt)); - mWXSDKInstance.setInstanceViewPortWidth(width); + mWXSDKInstance.setInstanceViewPortWidth(width,true); WXLogUtils.d("[WXMetaModule] setViewport success[device-width]=" + width); } else { int width = jsObj.getInteger(WIDTH); if (width > 0) { - mWXSDKInstance.setInstanceViewPortWidth(width); + mWXSDKInstance.setInstanceViewPortWidth(width,true); } WXLogUtils.d("[WXMetaModule] setViewport success[width]=" + width); }