From f66f52d1bae62b0ad517a113ec508cbf2e4d6c4f Mon Sep 17 00:00:00 2001 From: birfincankafein Date: Fri, 7 Apr 2017 01:57:02 -0700 Subject: [PATCH] =?UTF-8?q?Make=20YogaLayout=20create=20programmatically.?= =?UTF-8?q?=20Make=20YogaNode=20of=20YogaLayout=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Make YogaLayout constructible programmatically. Make YogaLayout's YogaNode accessible from outside. Closes https://github.com/facebook/yoga/pull/436 Differential Revision: D4850451 Pulled By: emilsjolander fbshipit-source-id: 2821a6ef4160854244c0227a3c4c96369f7b2e64 --- .../com/facebook/yoga/android/YogaLayout.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/facebook/yoga/android/YogaLayout.java b/android/src/main/java/com/facebook/yoga/android/YogaLayout.java index d3a50ece..fc522ee2 100644 --- a/android/src/main/java/com/facebook/yoga/android/YogaLayout.java +++ b/android/src/main/java/com/facebook/yoga/android/YogaLayout.java @@ -91,15 +91,20 @@ public class YogaLayout extends ViewGroup { mYogaNode.setData(this); mYogaNode.setMeasureFunction(new ViewMeasureFunction()); - final LayoutParams layoutParams = new LayoutParams(context, attrs); + LayoutParams layoutParams = null; + if (attrs != null) { + layoutParams = new LayoutParams(context, attrs); + } else { + layoutParams = (LayoutParams) generateDefaultLayoutParams(); + } applyLayoutParams(layoutParams, mYogaNode, this); } - YogaNode getYogaNode() { + public YogaNode getYogaNode() { return mYogaNode; } - YogaNode getYogaNodeForView(View view) { + public YogaNode getYogaNodeForView(View view) { return mYogaNodes.get(view); } @@ -154,7 +159,11 @@ public class YogaLayout extends ViewGroup { if (child instanceof YogaLayout) { childNode = ((YogaLayout) child).getYogaNode(); } else { - childNode = new YogaNode(); + if(mYogaNodes.containsKey(child)) { + childNode = mYogaNodes.get(child); + } else { + childNode = new YogaNode(); + } childNode.setData(child); childNode.setMeasureFunction(new ViewMeasureFunction());