* [android] fix box-shadow size should cover padding and border

Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/46cdd0e0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/46cdd0e0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/46cdd0e0

Branch: refs/heads/master
Commit: 46cdd0e0265368cd6b4eb13e6954c5e03c207736
Parents: ea2e12f
Author: Yanjiie <[email protected]>
Authored: Tue Apr 17 09:37:58 2018 +0800
Committer: Yanjiie <[email protected]>
Committed: Tue Apr 17 09:37:58 2018 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/ui/component/WXVContainer.java | 17 ++++++++++++++++-
 .../java/com/taobao/weex/utils/BoxShadowUtil.java  |  6 ++++--
 2 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/46cdd0e0/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
index 635b8e4..2bb4703 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
@@ -29,11 +29,13 @@ import android.util.Pair;
 import android.view.Menu;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
 
 import com.taobao.weex.WXSDKInstance;
 import com.taobao.weex.annotation.JSMethod;
 import com.taobao.weex.common.Constants;
 import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.dom.flex.Spacing;
 import com.taobao.weex.ui.view.WXImageView;
 import com.taobao.weex.utils.WXLogUtils;
 import com.taobao.weex.utils.WXUtils;
@@ -596,7 +598,20 @@ public abstract class WXVContainer<T extends ViewGroup> 
extends WXComponent<T> {
         if (mBoxShadowHost == null) {
           mBoxShadowHost = new BoxShadowHost(getContext());
           WXViewUtils.setBackGround(mBoxShadowHost, null);
-          mBoxShadowHost.setLayoutParams(new 
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
ViewGroup.LayoutParams.MATCH_PARENT));
+
+          Spacing padding = this.getDomObject().getPadding();
+          Spacing border = this.getDomObject().getBorder();
+
+          int left = (int) (padding.get(Spacing.LEFT) + 
border.get(Spacing.LEFT));
+          int top = (int) (padding.get(Spacing.TOP) + border.get(Spacing.TOP));
+          int right = (int) (padding.get(Spacing.RIGHT) + 
border.get(Spacing.RIGHT));
+          int bottom = (int) (padding.get(Spacing.BOTTOM) + 
border.get(Spacing.BOTTOM));
+
+          ViewGroup.MarginLayoutParams layoutParams = new 
ViewGroup.MarginLayoutParams(hostView.getLayoutParams()) ;
+          layoutParams.setMargins(-left, -top, -right, -bottom);
+
+          mBoxShadowHost.setLayoutParams(layoutParams);
+
           hostView.addView(mBoxShadowHost);
         }
         hostView.removeView(mBoxShadowHost);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/46cdd0e0/android/sdk/src/main/java/com/taobao/weex/utils/BoxShadowUtil.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/BoxShadowUtil.java 
b/android/sdk/src/main/java/com/taobao/weex/utils/BoxShadowUtil.java
index b4adbb4..dba8b63 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/BoxShadowUtil.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/BoxShadowUtil.java
@@ -65,12 +65,12 @@ import java.util.regex.Pattern;
 
 public class BoxShadowUtil {
   private static final String TAG = "BoxShadowUtil";
-  private static boolean sBoxShadowEnabled = false /*disable box-shadow 
temporary*/;
+  private static boolean sBoxShadowEnabled = true /*disable box-shadow 
temporary*/;
 
   private static Pattern sColorPattern;
 
   public static void setBoxShadowEnabled(boolean enabled) {
-    //sBoxShadowEnabled = enabled;
+    sBoxShadowEnabled = enabled;
     WXLogUtils.w(TAG, "Switch box-shadow status: " + enabled);
   }
 
@@ -195,6 +195,8 @@ public class BoxShadowUtil {
     int h = target.getHeight();
     int w = target.getWidth();
 
+    ViewGroup.LayoutParams p = target.getLayoutParams();
+
     if (h == 0 || w == 0) {
       Log.w(TAG, "Target view is invisible, ignore set shadow.");
       return;

Reply via email to