Improve Layout API usage
Layout's blocks are now named "measureBlock" and
"positioningBlock" to make them more readable. This also
means that ComplexLayout and Layout have the same "layout"
method.
Layout can now accept varargs rather than the previous
array. This makes the syntax much prettier.
I also used trailing lambda syntax when it was most
readable. I made it so that if Layout accepted a
children variable, it didn't use a named parameter
and used the trailing lambda syntax for the
measureBlock. When children was a short lambda I
used children = {} named parameter syntax, followed by
trailing lambda syntax for measureBlock. When
the Composable was long, I used named parameters
for both children and measureBlock.
Test: ran ui-platform and ui-layout connectedCheck
Change-Id: Ia3d35c4dc2b73b40eaaccc039d94075d45865ec3
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt
index f7d5a45..4c98b42 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt
@@ -100,9 +100,9 @@
drawItems(canvas, scroll, width, parentSize.height.value, paint)
}
}
- Layout(children = children, layoutBlock = { _, constraints ->
+ Layout(children) { _, constraints ->
layout(constraints.maxWidth, IntPx(1200)) {}
- })
+ }
}
}
}
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt
index ab11074..887043da 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt
@@ -46,9 +46,9 @@
@Composable
fun HelloAnimation() {
- Layout(children = { ColorRect() }, layoutBlock = { _, constraints ->
+ Layout(children = { ColorRect() }) { _, constraints ->
layout(constraints.maxWidth, constraints.maxHeight) {}
- })
+ }
}
private val background = ColorPropKey()
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt
index 868f2fa..a3e6399 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt
@@ -75,9 +75,9 @@
DrawScaledRect(scale = state[scale], color = state[color])
}
}
- Layout(children = children, layoutBlock = { _, constraints ->
+ Layout(children) { _, constraints ->
layout(constraints.maxWidth, constraints.maxHeight) {}
- })
+ }
}
}
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt
index 28fa330..a4f4214 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt
@@ -110,9 +110,9 @@
drawRects(canvas, parentSize, paint, animScroll.value)
}
}
- Layout(children = children, layoutBlock = { _, constraints ->
+ Layout(children) { _, constraints ->
layout(constraints.maxWidth, IntPx(1200)) {}
- })
+ }
}
}
}
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt
index 1155e87..dd8968e0 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt
@@ -136,9 +136,9 @@
OnChildPositioned({ coordinates ->
itemWidth.value = coordinates.size.width.value * 2 / 3f
}) {
- Layout(children = children, layoutBlock = { _, constraints ->
- layout(constraints.maxWidth, IntPx(height.toInt())) {}
- })
+ Layout(children) { _, constraints ->
+ layout(constraints.maxWidth, IntPx(height.toInt())) {}
+ }
}
}
}
diff --git a/ui/ui-framework/api/1.0.0-alpha01.txt b/ui/ui-framework/api/1.0.0-alpha01.txt
index 8b93774..49b6438 100644
--- a/ui/ui-framework/api/1.0.0-alpha01.txt
+++ b/ui/ui-framework/api/1.0.0-alpha01.txt
@@ -8,7 +8,7 @@
public final class ComplexLayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layoutResult(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.Measurable, androidx.ui.core.IntPx w);
method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.Measurable, androidx.ui.core.IntPx h);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
@@ -18,9 +18,9 @@
}
public final class ComplexLayoutReceiver {
- method public void layout(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void maxIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightBlock);
method public void maxIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthBlock);
+ method public void measure(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void minIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightBlock);
method public void minIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthBlock);
}
@@ -60,7 +60,7 @@
public final class LayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public operator java.util.List<androidx.ui.core.Measurable> get(java.util.List<? extends androidx.ui.core.Measurable>, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
property public androidx.ui.core.Density density;
}
@@ -80,8 +80,8 @@
public final class LayoutKt {
ctor public LayoutKt();
method public static void ComplexLayout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComplexLayoutReceiver,kotlin.Unit> block);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
method public static void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public static void OnPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned);
method public static void WithConstraints(kotlin.jvm.functions.Function1<? super androidx.ui.core.Constraints,kotlin.Unit> children);
diff --git a/ui/ui-framework/api/current.txt b/ui/ui-framework/api/current.txt
index 8b93774..49b6438 100644
--- a/ui/ui-framework/api/current.txt
+++ b/ui/ui-framework/api/current.txt
@@ -8,7 +8,7 @@
public final class ComplexLayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layoutResult(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.Measurable, androidx.ui.core.IntPx w);
method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.Measurable, androidx.ui.core.IntPx h);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
@@ -18,9 +18,9 @@
}
public final class ComplexLayoutReceiver {
- method public void layout(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void maxIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightBlock);
method public void maxIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthBlock);
+ method public void measure(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void minIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightBlock);
method public void minIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthBlock);
}
@@ -60,7 +60,7 @@
public final class LayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public operator java.util.List<androidx.ui.core.Measurable> get(java.util.List<? extends androidx.ui.core.Measurable>, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
property public androidx.ui.core.Density density;
}
@@ -80,8 +80,8 @@
public final class LayoutKt {
ctor public LayoutKt();
method public static void ComplexLayout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComplexLayoutReceiver,kotlin.Unit> block);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
method public static void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public static void OnPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned);
method public static void WithConstraints(kotlin.jvm.functions.Function1<? super androidx.ui.core.Constraints,kotlin.Unit> children);
diff --git a/ui/ui-framework/api/restricted_1.0.0-alpha01.txt b/ui/ui-framework/api/restricted_1.0.0-alpha01.txt
index 8b93774..49b6438 100644
--- a/ui/ui-framework/api/restricted_1.0.0-alpha01.txt
+++ b/ui/ui-framework/api/restricted_1.0.0-alpha01.txt
@@ -8,7 +8,7 @@
public final class ComplexLayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layoutResult(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.Measurable, androidx.ui.core.IntPx w);
method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.Measurable, androidx.ui.core.IntPx h);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
@@ -18,9 +18,9 @@
}
public final class ComplexLayoutReceiver {
- method public void layout(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void maxIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightBlock);
method public void maxIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthBlock);
+ method public void measure(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void minIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightBlock);
method public void minIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthBlock);
}
@@ -60,7 +60,7 @@
public final class LayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public operator java.util.List<androidx.ui.core.Measurable> get(java.util.List<? extends androidx.ui.core.Measurable>, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
property public androidx.ui.core.Density density;
}
@@ -80,8 +80,8 @@
public final class LayoutKt {
ctor public LayoutKt();
method public static void ComplexLayout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComplexLayoutReceiver,kotlin.Unit> block);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
method public static void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public static void OnPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned);
method public static void WithConstraints(kotlin.jvm.functions.Function1<? super androidx.ui.core.Constraints,kotlin.Unit> children);
diff --git a/ui/ui-framework/api/restricted_current.txt b/ui/ui-framework/api/restricted_current.txt
index 8b93774..49b6438 100644
--- a/ui/ui-framework/api/restricted_current.txt
+++ b/ui/ui-framework/api/restricted_current.txt
@@ -8,7 +8,7 @@
public final class ComplexLayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layoutResult(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.Measurable, androidx.ui.core.IntPx w);
method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.Measurable, androidx.ui.core.IntPx h);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
@@ -18,9 +18,9 @@
}
public final class ComplexLayoutReceiver {
- method public void layout(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void maxIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightBlock);
method public void maxIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthBlock);
+ method public void measure(kotlin.jvm.functions.Function3<? super androidx.ui.core.ComplexLayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
method public void minIntrinsicHeight(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightBlock);
method public void minIntrinsicWidth(kotlin.jvm.functions.Function3<? super androidx.ui.core.IntrinsicMeasurementReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthBlock);
}
@@ -60,7 +60,7 @@
public final class LayoutBlockReceiver implements androidx.ui.core.DensityReceiver {
method public operator java.util.List<androidx.ui.core.Measurable> get(java.util.List<? extends androidx.ui.core.Measurable>, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public androidx.ui.core.Density getDensity();
- method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> block);
+ method public androidx.ui.core.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, kotlin.jvm.functions.Function1<? super androidx.ui.core.PositioningBlockReceiver,kotlin.Unit> positioningBlock);
method public androidx.ui.core.Placeable measure(androidx.ui.core.Measurable, androidx.ui.core.Constraints constraints);
property public androidx.ui.core.Density density;
}
@@ -80,8 +80,8 @@
public final class LayoutKt {
ctor public LayoutKt();
method public static void ComplexLayout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComplexLayoutReceiver,kotlin.Unit> block);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
- method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> layoutBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
+ method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, kotlin.jvm.functions.Function3<? super androidx.ui.core.LayoutBlockReceiver,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,androidx.ui.core.LayoutResult> measureBlock);
method public static void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
method public static void OnPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned);
method public static void WithConstraints(kotlin.jvm.functions.Function1<? super androidx.ui.core.Constraints,kotlin.Unit> children);
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt
index 9646e80..5fde1f2 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt
@@ -205,7 +205,7 @@
) { state ->
Circle(color = state[colorKey], sizeRatio = state[sizeKey])
}
- }, layoutBlock = { _, constraints ->
+ }, measureBlock = { _, constraints ->
layout(constraints.maxWidth, constraints.maxHeight) {}
})
}
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt
index e5fc52d..f1b1249 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt
@@ -27,7 +27,6 @@
import androidx.ui.core.toRect
import androidx.ui.graphics.Color
import androidx.ui.painting.Paint
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.graphics.Brush
@@ -35,14 +34,14 @@
@Composable
fun ColoredRect(brush: Brush, width: Dp? = null, height: Dp? = null) {
- Layout(children = { DrawFillRect(brush = brush) }, layoutBlock = { _, constraints ->
+ Layout(children = { DrawFillRect(brush = brush) }) { _, constraints ->
layout(
width?.toIntPx()?.coerceIn(constraints.minWidth, constraints.maxWidth)
?: constraints.maxWidth,
height?.toIntPx()?.coerceIn(constraints.minHeight, constraints.maxHeight)
?: constraints.maxHeight
) {}
- })
+ }
}
@Composable
@@ -66,33 +65,31 @@
content: @Composable() () -> Unit
) {
@Suppress("USELESS_CAST")
- Layout(
- childrenArray = arrayOf(header, content, footer),
- layoutBlock = { measurables, constraints ->
- val headerPlaceable = measurables[header].first().measure(
- Constraints.tightConstraints(constraints.maxWidth, 100.ipx)
- )
- val footerPadding = 50.ipx
- val footerPlaceable = measurables[footer].first().measure(
- Constraints.tightConstraints(constraints.maxWidth - footerPadding * 2, 100.ipx)
- )
- val itemHeight =
- (constraints.maxHeight - headerPlaceable.height - footerPlaceable.height) /
- measurables[content].size
- val contentPlaceables = measurables[content].map { measurable ->
- measurable.measure(Constraints.tightConstraints(constraints.maxWidth, itemHeight))
- }
+ Layout(header, content, footer) { measurables, constraints ->
+ val headerPlaceable = measurables[header].first().measure(
+ Constraints.tightConstraints(constraints.maxWidth, 100.ipx)
+ )
+ val footerPadding = 50.ipx
+ val footerPlaceable = measurables[footer].first().measure(
+ Constraints.tightConstraints(constraints.maxWidth - footerPadding * 2, 100.ipx)
+ )
+ val itemHeight =
+ (constraints.maxHeight - headerPlaceable.height - footerPlaceable.height) /
+ measurables[content].size
+ val contentPlaceables = measurables[content].map { measurable ->
+ measurable.measure(Constraints.tightConstraints(constraints.maxWidth, itemHeight))
+ }
- layout(constraints.maxWidth, constraints.maxHeight) {
- headerPlaceable.place(0.ipx, 0.ipx)
- footerPlaceable.place(footerPadding, constraints.maxHeight - footerPlaceable.height)
- var top = headerPlaceable.height
- contentPlaceables.forEach { placeable ->
- placeable.place(0.ipx, top)
- top += itemHeight
- }
+ layout(constraints.maxWidth, constraints.maxHeight) {
+ headerPlaceable.place(0.ipx, 0.ipx)
+ footerPlaceable.place(footerPadding, constraints.maxHeight - footerPlaceable.height)
+ var top = headerPlaceable.height
+ contentPlaceables.forEach { placeable ->
+ placeable.place(0.ipx, top)
+ top += itemHeight
}
- })
+ }
+ }
}
@Composable
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
index 6146504..93e3407 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
@@ -118,7 +118,7 @@
Draw { canvas, _ ->
canvas.restore()
}
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
val placeable =
measurables.first()
.measure(constraints.copy(minHeight = 0.ipx, maxHeight = IntPx.Infinity))
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt
index f1bfbd2..4cc8df7 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt
@@ -129,7 +129,7 @@
)
}
},
- layoutBlock = { measurables, constraints ->
+ measureBlock = { measurables, constraints ->
val placeable =
if (measurables.isNotEmpty()) measurables.first().measure(constraints) else null
val layoutWidth = placeable?.width ?: constraints.maxWidth
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
index c8866dc..48461f4 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
@@ -24,7 +24,6 @@
import android.view.ViewGroup
import android.view.ViewTreeObserver
import androidx.annotation.RequiresApi
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.Compose
import androidx.compose.Model
@@ -289,7 +288,7 @@
Padding(size = model.size) {
FillColor(model.innerColor)
}
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
val placeables = measurables.map { it.measure(constraints) }
layout(placeables[0].width, placeables[0].height) {
placeables[0].place(0.ipx, 0.ipx)
@@ -366,11 +365,11 @@
Padding(size = size) {
WithConstraints { constraints ->
paddedConstraints.value = constraints
- Layout(layoutBlock = { _, childConstraints ->
+ Layout(measureBlock = { _, childConstraints ->
firstChildConstraints.value = childConstraints
layout(size, size) { }
}, children = { })
- Layout(layoutBlock = { _, chilConstraints ->
+ Layout(measureBlock = { _, chilConstraints ->
secondChildConstraints.value = chilConstraints
layout(size, size) { }
}, children = { })
@@ -424,23 +423,23 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
val header = @Composable {
- Layout(layoutBlock = { _, constraints ->
+ Layout(measureBlock = { _, constraints ->
assertEquals(childConstraints[0], constraints)
layout(0.ipx, 0.ipx) {}
}, children = {})
}
val footer = @Composable {
- Layout(layoutBlock = { _, constraints ->
+ Layout(measureBlock = { _, constraints ->
assertEquals(childConstraints[1], constraints)
layout(0.ipx, 0.ipx) {}
}, children = {})
- Layout(layoutBlock = { _, constraints ->
+ Layout(measureBlock = { _, constraints ->
assertEquals(childConstraints[2], constraints)
layout(0.ipx, 0.ipx) {}
}, children = {})
}
@Suppress("USELESS_CAST")
- Layout(childrenArray = arrayOf(header, footer)) { measurables, _ ->
+ Layout(header, footer) { measurables, _ ->
assertEquals(childrenCount, measurables.size)
measurables.forEachIndexed { index, measurable ->
measurable.measure(childConstraints[index])
@@ -462,16 +461,16 @@
activity.setContent {
val header = @Composable {
ParentData(data = 0) {
- Layout(layoutBlock = { _, _ -> layout(0.ipx, 0.ipx, {}) }, children = {})
+ Layout(measureBlock = { _, _ -> layout(0.ipx, 0.ipx, {}) }, children = {})
}
}
val footer = @Composable {
ParentData(data = 1) {
- Layout(layoutBlock = { _, _ -> layout(0.ipx, 0.ipx, {}) }, children = {})
+ Layout(measureBlock = { _, _ -> layout(0.ipx, 0.ipx, {}) }, children = {})
}
}
- Layout(childrenArray = arrayOf(header, footer)) { measurables, _ ->
+ Layout(header, footer) { measurables, _ ->
assertEquals(0, measurables[0].parentData)
assertEquals(1, measurables[1].parentData)
layout(0.ipx, 0.ipx, {})
@@ -522,7 +521,7 @@
canvas.drawRect(parentSize.toRect(), paint)
}
}
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
measureCalls++
layout(30.ipx, 30.ipx) {
layoutCalls++
@@ -560,7 +559,7 @@
height: IntPx,
children: @Composable() () -> Unit
) {
- Layout(children = children, layoutBlock = { measurables, constraints ->
+ Layout(children = children, measureBlock = { measurables, constraints ->
val resolvedWidth = width.coerceIn(constraints.minWidth, constraints.maxWidth)
val resolvedHeight = height.coerceIn(constraints.minHeight, constraints.maxHeight)
layout(resolvedWidth, resolvedHeight) {
@@ -596,7 +595,7 @@
drawn.value = true
latch.countDown()
}
- }, layoutBlock = { _, constraints ->
+ }, measureBlock = { _, constraints ->
measured.value = true
val resolvedWidth = width.coerceIn(constraints.minWidth, constraints.maxWidth)
val resolvedHeight = constraints.minHeight
@@ -943,7 +942,7 @@
@Composable
fun AtLeastSize(size: IntPx, children: @Composable() () -> Unit) {
Layout(
- layoutBlock = { measurables, constraints ->
+ measureBlock = { measurables, constraints ->
val newConstraints = Constraints(
minWidth = max(size, constraints.minWidth),
maxWidth = max(size, constraints.maxWidth),
@@ -971,7 +970,7 @@
@Composable
fun Align(children: @Composable() () -> Unit) {
Layout(
- layoutBlock = { measurables, constraints ->
+ measureBlock = { measurables, constraints ->
val newConstraints = Constraints(
minWidth = IntPx.Zero,
maxWidth = constraints.maxWidth,
@@ -999,7 +998,7 @@
@Composable
fun Padding(size: IntPx, children: @Composable() () -> Unit) {
Layout(
- layoutBlock = { measurables, constraints ->
+ measureBlock = { measurables, constraints ->
val totalDiff = size * 2
val newConstraints = Constraints(
minWidth = (constraints.minWidth - totalDiff).coerceAtLeast(0.ipx),
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt
index c8de633..196df60 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt
@@ -65,7 +65,7 @@
activity.setContent {
Layout(children = {
SimpleDrawChild(drawLatch = drawLatch)
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
assertEquals(1, measurables.size)
parentData.value = measurables[0].parentData
@@ -90,7 +90,7 @@
ParentData(data = "Hello") {
SimpleDrawChild(drawLatch = drawLatch)
}
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
assertEquals(1, measurables.size)
parentData.value = measurables[0].parentData
@@ -115,7 +115,7 @@
ParentData(data = "Hello") {
Layout(children = {
SimpleDrawChild(drawLatch = drawLatch)
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
assertEquals(1, measurables.size)
parentData.value = measurables[0].parentData
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/TextLayoutTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/TextLayoutTest.kt
index ccfa929..8e5c1d9 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/TextLayoutTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/TextLayoutTest.kt
@@ -16,7 +16,6 @@
package androidx.ui.core.test
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.test.filters.SmallTest
@@ -130,7 +129,7 @@
Text("aaaa", style = TextStyle(fontFamily = fontFamily))
}
ComplexLayout(text) {
- layout { measurables, _ ->
+ measure { measurables, _ ->
val textMeasurable = measurables.first()
// Min width.
@@ -154,7 +153,7 @@
intrinsicsLatch.countDown()
- layoutResult(0.ipx, 0.ipx) {}
+ layout(0.ipx, 0.ipx) {}
}
minIntrinsicWidth { _, _ -> 0.ipx }
minIntrinsicHeight { _, _ -> 0.ipx }
@@ -184,4 +183,4 @@
}
activityTestRule.runOnUiThread(runnable)
}
-}
\ No newline at end of file
+}
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt
index 4875fe2..b1f1b1c 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt
@@ -16,7 +16,6 @@
package androidx.ui.core
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.Compose
import androidx.compose.ambient
@@ -217,7 +216,7 @@
* Receiver scope for the [ComplexLayout] lambda.
*/
class ComplexLayoutReceiver internal constructor(internal val layoutState: ComplexLayoutState) {
- fun layout(layoutBlock: ComplexLayoutBlock) {
+ fun measure(layoutBlock: ComplexLayoutBlock) {
layoutState.layoutBlock = layoutBlock
}
fun minIntrinsicWidth(minIntrinsicWidthBlock: IntrinsicMeasurementBlock) {
@@ -325,13 +324,13 @@
this as ComplexLayoutState
return this.measure(constraints)
}
- fun layoutResult(
+ fun layout(
width: IntPx,
height: IntPx,
- block: PositioningBlockReceiver.() -> Unit
+ positioningBlock: PositioningBlockReceiver.() -> Unit
): LayoutResult {
layoutState.resize(width, height)
- layoutState.positioningBlock = block
+ layoutState.positioningBlock = positioningBlock
return LayoutResult.instance
}
fun Measurable.minIntrinsicWidth(h: IntPx) =
@@ -359,7 +358,7 @@
@Composable
fun Layout(
children: @Composable() () -> Unit,
- layoutBlock: LayoutBlock
+ measureBlock: LayoutBlock
) {
trace("UI:Layout") {
ComplexLayout(children = children, block = {
@@ -368,10 +367,10 @@
LayoutMeasure, /* measure lambda */
{ _, _, _ -> }
)
- layout { measurables, constraints ->
+ measure { measurables, constraints ->
layoutReceiver.complexMeasure = LayoutMeasure
- layoutReceiver.complexLayoutResult = { w, h, block -> layoutResult(w, h, block) }
- layoutReceiver.layoutBlock(measurables, constraints)
+ layoutReceiver.complexLayoutResult = { w, h, block -> layout(w, h, block) }
+ layoutReceiver.measureBlock(measurables, constraints)
}
minIntrinsicWidth { measurables, h ->
@@ -382,7 +381,7 @@
}
layoutReceiver.complexLayoutResult = { width, _, _ -> intrinsicWidth = width }
val constraints = Constraints(maxHeight = h)
- layoutReceiver.layoutBlock(measurables, constraints)
+ layoutReceiver.measureBlock(measurables, constraints)
intrinsicWidth
}
@@ -394,7 +393,7 @@
}
layoutReceiver.complexLayoutResult = { width, _, _ -> intrinsicWidth = width }
val constraints = Constraints(maxHeight = h)
- layoutReceiver.layoutBlock(measurables, constraints)
+ layoutReceiver.measureBlock(measurables, constraints)
intrinsicWidth
}
@@ -406,7 +405,7 @@
}
layoutReceiver.complexLayoutResult = { _, height, _ -> intrinsicHeight = height }
val constraints = Constraints(maxWidth = w)
- layoutReceiver.layoutBlock(measurables, constraints)
+ layoutReceiver.measureBlock(measurables, constraints)
intrinsicHeight
}
@@ -418,7 +417,7 @@
}
layoutReceiver.complexLayoutResult = { _, height, _ -> intrinsicHeight = height }
val constraints = Constraints(maxWidth = w)
- layoutReceiver.layoutBlock(measurables, constraints)
+ layoutReceiver.measureBlock(measurables, constraints)
intrinsicHeight
}
})
@@ -450,12 +449,12 @@
*/
@Composable
fun Layout(
- childrenArray: Array<@Composable() () -> Unit>,
- layoutBlock: LayoutBlock
+ vararg childrenArray: @Composable() () -> Unit,
+ measureBlock: LayoutBlock
) {
val ChildrenEndMarker = @Composable { children: @Composable() () -> Unit ->
ParentData(data = ChildrenEndParentData(children)) {
- Layout(layoutBlock={_, _ -> layout(0.ipx, 0.ipx){}}, children = {})
+ Layout(measureBlock={_, _ -> layout(0.ipx, 0.ipx){}}, children = {})
}
}
val children = @Composable {
@@ -466,7 +465,7 @@
}
}
- Layout(layoutBlock = layoutBlock, children = children)
+ Layout(measureBlock = measureBlock, children = children)
}
/**
@@ -503,9 +502,9 @@
fun layout(
width: IntPx,
height: IntPx,
- block: PositioningBlockReceiver.() -> Unit
+ positioningBlock: PositioningBlockReceiver.() -> Unit
): LayoutResult {
- complexLayoutResult(width, height, block)
+ complexLayoutResult(width, height, positioningBlock)
return LayoutResult.instance
}
}
@@ -538,33 +537,31 @@
val ref = +compositionReference()
val context = +ambient(ContextAmbient)
- Layout(
- layoutBlock = { _, constraints ->
- val root = layoutState.layoutNode
- // Start subcomposition from the current node.
- Compose.composeInto(
- root,
- context,
- ref
- ) {
- children(p1 = constraints)
- }
+ Layout(children = {}) { _, constraints ->
+ val root = layoutState.layoutNode
+ // Start subcomposition from the current node.
+ Compose.composeInto(
+ root,
+ context,
+ ref
+ ) {
+ children(p1 = constraints)
+ }
- // Measure the obtained children and compute our size.
- val measurables = layoutState.childrenMeasurables
- val placeables = measurables.map { it.measure(constraints) }
- val layoutSize = constraints.constrain(IntPxSize(
- placeables.map { it.width }.maxBy { it.value } ?: IntPx.Zero,
- placeables.map { it.height }.maxBy { it.value } ?: IntPx.Zero
- ))
+ // Measure the obtained children and compute our size.
+ val measurables = layoutState.childrenMeasurables
+ val placeables = measurables.map { it.measure(constraints) }
+ val layoutSize = constraints.constrain(IntPxSize(
+ placeables.map { it.width }.maxBy { it.value } ?: IntPx.Zero,
+ placeables.map { it.height }.maxBy { it.value } ?: IntPx.Zero
+ ))
- layout(layoutSize.width, layoutSize.height) {
- placeables.forEach { placeable ->
- placeable.place(IntPx.Zero, IntPx.Zero)
- }
+ layout(layoutSize.width, layoutSize.height) {
+ placeables.forEach { placeable ->
+ placeable.place(IntPx.Zero, IntPx.Zero)
}
- },
- children={})
+ }
+ }
}
private val OnPositionedKey = DataNodeKey<(LayoutCoordinates) -> Unit>("Compose:OnPositioned")
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt
index 19f63ae..4ce2cf1 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt
@@ -240,9 +240,9 @@
}
}
ComplexLayout(children) {
- layout { _, constraints ->
+ measure { _, constraints ->
textPainter.layout(constraints)
- layoutResult(textPainter.width.px.round(), textPainter.height.px.round()) {}
+ layout(textPainter.width.px.round(), textPainter.height.px.round()) {}
}
minIntrinsicWidth { _, _ ->
// TODO(popam): discuss with the Text team about this
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt b/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt
index 4871240..9d2dd4e 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt
@@ -16,7 +16,6 @@
package androidx.ui.core
import androidx.compose.composer
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.ambient
import androidx.compose.memo
@@ -210,7 +209,7 @@
hasFocus.value,
editorStyle) }
},
- layoutBlock = { _, constraints ->
+ measureBlock = { _, constraints ->
TextFieldDelegate.layout(textPainter, constraints).let {
layout(it.first, it.second) {}
}
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt
index c5f5e95..a4e2b97 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt
@@ -16,7 +16,6 @@
package androidx.ui.core.selection
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.compose.memo
@@ -65,41 +64,35 @@
children()
}
}
- Layout(children = content, layoutBlock = { measurables, constraints ->
+ Layout(content) { measurables, constraints ->
val placeable = measurables.firstOrNull()?.measure(constraints)
val width = placeable?.width ?: constraints.minWidth
val height = placeable?.height ?: constraints.minHeight
layout(width, height) {
placeable?.place(0.ipx, 0.ipx)
}
- })
+ }
}
val startHandle = @Composable {
TouchSlopDragGestureDetector(
dragObserver = manager.handleDragObserver(dragStartHandle = true)
) {
- Layout(
- children = { LeftPointingSelectionHandle() },
- layoutBlock = { _, constraints ->
- layout(constraints.minWidth, constraints.minHeight) {}
- })
+ Layout(children = { LeftPointingSelectionHandle() }) { _, constraints ->
+ layout(constraints.minWidth, constraints.minHeight) {}
+ }
}
}
val endHandle = @Composable {
TouchSlopDragGestureDetector(
dragObserver = manager.handleDragObserver(dragStartHandle = false)
) {
- Layout(
- children = { RightPointingSelectionHandle() },
- layoutBlock = { _, constraints ->
- layout(constraints.minWidth, constraints.minHeight) {}
- })
+ Layout(children = { RightPointingSelectionHandle() }) { _, constraints ->
+ layout(constraints.minWidth, constraints.minHeight) {}
+ }
}
}
@Suppress("USELESS_CAST")
- (Layout(
- childrenArray = arrayOf(content, startHandle, endHandle),
- layoutBlock = { measurables, constraints ->
+ Layout(content, startHandle, endHandle) { measurables, constraints ->
val placeable = measurables[0].measure(constraints)
val width = placeable.width
val height = placeable.height
@@ -135,6 +128,6 @@
end.place(endOffset.x, endOffset.y)
}
}
- }))
+ }
}
}
diff --git a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt
index 1a11ec8..3e957be 100644
--- a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt
+++ b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt
@@ -42,7 +42,6 @@
import androidx.ui.layout.Stack
import androidx.ui.graphics.Color
import androidx.ui.painting.Paint
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.Model
import androidx.compose.composer
@@ -60,8 +59,8 @@
*/
@Composable
fun IntrinsicWidth(children: @Composable() () -> Unit) {
- ComplexLayout(children = children, block = {
- layout { measurables, constraints ->
+ ComplexLayout(children) {
+ measure { measurables, constraints ->
// Force child be as wide as its min intrinsic width.
val width = measurables.first().minIntrinsicWidth(constraints.minHeight)
val childConstraints = Constraints(
@@ -71,7 +70,7 @@
constraints.maxHeight
)
val childPlaceable = measurables.first().measure(childConstraints)
- layoutResult(childPlaceable.width, childPlaceable.height) {
+ layout(childPlaceable.width, childPlaceable.height) {
childPlaceable.place(IntPx.Zero, IntPx.Zero)
}
}
@@ -87,7 +86,7 @@
maxIntrinsicHeight { measurables, w ->
measurables.first().maxIntrinsicHeight(w)
}
- })
+ }
}
/**
@@ -96,8 +95,8 @@
@Composable
fun RectangleWithIntrinsics(color: Color) {
ComplexLayout(children = { DrawRectangle(color = color) }, block = {
- layout { _, _ ->
- layoutResult(80.ipx, 80.ipx) {}
+ measure { _, _ ->
+ layout(80.ipx, 80.ipx) {}
}
minIntrinsicWidth { _, _ -> 30.ipx }
maxIntrinsicWidth { _, _ -> 150.ipx }
@@ -228,7 +227,7 @@
@Composable
fun SingleCompositionRow(children: @Composable() () -> Unit) {
- Layout(layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
val placeables = measurables.map {
it.measure(constraints.copy(minWidth = 0.ipx, maxWidth = IntPx.Infinity))
}
@@ -242,12 +241,12 @@
left += placeable.width
}
}
- }, children = children)
+ }
}
@Composable
fun SingleCompositionColumn(children: @Composable() () -> Unit) {
- Layout(layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
val placeables = measurables.map {
it.measure(constraints.copy(minHeight = 0.ipx, maxHeight = IntPx.Infinity))
}
@@ -261,7 +260,7 @@
top += placeable.height
}
}
- }, children = children)
+ }
}
@Composable
@@ -272,13 +271,10 @@
canvas.drawRect(parentSize.toRect(), paint)
}
}
- Layout(
- layoutBlock = { _, constraints ->
- val size = constraints.constrain(IntPxSize(30.ipx, 30.ipx))
- layout(size.width, size.height) { }
- },
- children = Rectangle
- )
+ Layout(Rectangle) { _, constraints ->
+ val size = constraints.constrain(IntPxSize(30.ipx, 30.ipx))
+ layout(size.width, size.height) { }
+ }
}
@Model
@@ -295,8 +291,8 @@
}
}
ComplexLayout(children = Rectangle, block = {
- layout { _, _ ->
- layoutResult(50.ipx, 50.ipx) {}
+ measure { _, _ ->
+ layout(50.ipx, 50.ipx) {}
}
minIntrinsicWidth { _, _ -> 50.ipx }
maxIntrinsicWidth { _, _ -> 50.ipx }
@@ -308,7 +304,7 @@
@Composable
fun SingleCompositionRowWithIntrinsics(children: @Composable() () -> Unit) {
ComplexLayout(children = children, block = {
- layout { measurables, constraints ->
+ measure { measurables, constraints ->
val placeables = measurables.map { measurable ->
val childWidth = measurable.maxIntrinsicWidth(constraints.maxHeight)
measurable.measure(
@@ -320,7 +316,7 @@
val width = placeables.map { it.width }.sum()
val height = placeables.map { it.height }.max()
- layoutResult(width, height) {
+ layout(width, height) {
var left = 0.ipx
placeables.forEach { placeable ->
placeable.place(left, 0.ipx)
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSamples.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSamples.kt
index e816b27..23346d3 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSamples.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSamples.kt
@@ -35,13 +35,11 @@
*/
@Composable
fun SizedRectangle(color: Color, width: Dp? = null, height: Dp? = null) {
- Layout(
- children = { DrawRectangle(color = color) },
- layoutBlock = { _, constraints ->
- val widthPx = width?.toIntPx() ?: constraints.maxWidth
- val heightPx = height?.toIntPx() ?: constraints.maxHeight
- layout(widthPx, heightPx) {}
- })
+ Layout(children = { DrawRectangle(color = color) }) { _, constraints ->
+ val widthPx = width?.toIntPx() ?: constraints.maxWidth
+ val heightPx = height?.toIntPx() ?: constraints.maxHeight
+ layout(widthPx, heightPx) {}
+ }
}
@Composable
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt
index d4cab2b..64fd740 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt
@@ -113,7 +113,7 @@
}
}
},
- layoutBlock = { measurables, constraints ->
+ measureBlock = { measurables, constraints ->
val placeable = measurables.first().measure(Constraints())
layout(constraints.maxWidth, constraints.maxHeight) {
placeable.place(0.ipx, 0.ipx)
@@ -236,7 +236,7 @@
}
}
}
- }, layoutBlock = { measurables, constraints ->
+ }, measureBlock = { measurables, constraints ->
val placeable = measurables.first().measure(Constraints())
layout(constraints.maxWidth, constraints.maxHeight) {
placeable.place(0.ipx, 0.ipx)
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt
index 8a68a98..6ffd748 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt
@@ -352,11 +352,11 @@
@Composable
fun EmptyBox(width: Dp, height: Dp) {
- Layout(layoutBlock = { _, constraints ->
+ Layout(children = { }) { _, constraints ->
layout(
width.toIntPx().coerceIn(constraints.minWidth, constraints.maxWidth),
height.toIntPx().coerceIn(constraints.minHeight, constraints.maxHeight)
) {}
- }, children = { })
+ }
}
}
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt
index 556d6b4..6c62f1e 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt
@@ -16,7 +16,6 @@
package androidx.ui.layout.test
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.test.filters.SmallTest
@@ -499,12 +498,13 @@
width: Dp,
maxIntrinsicWidth: Dp,
minIntrinsicHeight: Dp,
- height: Dp, maxIntrinsicHeight: Dp,
+ height: Dp,
+ maxIntrinsicHeight: Dp,
children: @Composable() () -> Unit
) {
ComplexLayout(children) {
- layout { _, constraints ->
- layoutResult(
+ measure { _, constraints ->
+ layout(
width.toIntPx().coerceIn(constraints.minWidth, constraints.maxWidth),
height.toIntPx().coerceIn(constraints.minHeight, constraints.maxHeight)
) { }
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
index d8c6eb1..6b940fb 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
@@ -29,7 +29,6 @@
import androidx.ui.core.PxSize
import androidx.ui.core.Ref
import androidx.ui.core.px
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.core.ComplexLayout
@@ -140,7 +139,7 @@
val layoutLatch = CountDownLatch(1)
show {
ComplexLayout(layout) {
- layout { measurables, _ ->
+ measure { measurables, _ ->
val measurable = measurables.first()
test(
{ h -> measurable.minIntrinsicWidth(h) },
@@ -149,7 +148,7 @@
{ w -> measurable.maxIntrinsicHeight(w) }
)
layoutLatch.countDown()
- layoutResult(0.ipx, 0.ipx) {}
+ layout(0.ipx, 0.ipx) {}
}
minIntrinsicWidth { _, _ -> 0.ipx }
maxIntrinsicWidth { _, _ -> 0.ipx }
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt
index 888706f..3eca354 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt
@@ -21,7 +21,6 @@
import androidx.ui.core.Layout
import androidx.ui.core.isFinite
import androidx.ui.core.looseMin
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.core.round
@@ -70,7 +69,7 @@
*/
@Composable
fun Align(alignment: Alignment, children: @Composable() () -> Unit) {
- Layout(layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
val measurable = measurables.firstOrNull()
// The child cannot be larger than our max constraints, but we ignore min constraints.
val placeable = measurable?.measure(constraints.looseMin())
@@ -96,7 +95,7 @@
placeable.place(position.x, position.y)
}
}
- }, children = children)
+ }
}
/**
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/ConstrainedBox.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/ConstrainedBox.kt
index 7ad2633..ed2d6f1 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/ConstrainedBox.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/ConstrainedBox.kt
@@ -16,7 +16,6 @@
package androidx.ui.layout
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.core.Constraints
@@ -41,14 +40,14 @@
children: @Composable() () -> Unit
) {
ComplexLayout(children) {
- layout { measurables, incomingConstraints ->
+ measure { measurables, incomingConstraints ->
val measurable = measurables.firstOrNull()
val childConstraints = Constraints(constraints).enforce(incomingConstraints)
val placeable = measurable?.measure(childConstraints)
val layoutWidth = placeable?.width ?: childConstraints.minWidth
val layoutHeight = placeable?.height ?: childConstraints.minHeight
- layoutResult(layoutWidth, layoutHeight) {
+ layout(layoutWidth, layoutHeight) {
placeable?.place(IntPx.Zero, IntPx.Zero)
}
}
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt
index dc48a4b..8123f2c 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt
@@ -28,7 +28,6 @@
import androidx.ui.core.max
import androidx.ui.core.offset
import androidx.ui.core.withTight
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.compose.trace
@@ -64,7 +63,7 @@
children: @Composable() () -> Unit
) {
trace("UI:Container") {
- Layout(children = children, layoutBlock = { measurables, incomingConstraints ->
+ Layout(children) { measurables, incomingConstraints ->
val containerConstraints = Constraints(constraints)
.withTight(width?.toIntPx(), height?.toIntPx())
.enforce(incomingConstraints)
@@ -98,6 +97,6 @@
)
}
}
- })
+ }
}
}
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt
index 2693e86..9321ebe 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt
@@ -17,7 +17,6 @@
package androidx.ui.layout
import androidx.annotation.FloatRange
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.core.Constraints
@@ -489,7 +488,7 @@
composable
}
ComplexLayout(flexChildren) {
- layout { children, outerConstraints ->
+ measure { children, outerConstraints ->
val constraints = OrientationIndependentConstraints(outerConstraints, orientation)
var totalFlex = 0f
@@ -585,7 +584,7 @@
} else {
mainAxisLayoutSize
}
- layoutResult(layoutWidth, layoutHeight) {
+ layout(layoutWidth, layoutHeight) {
val childrenMainAxisSize = placeables.map { it!!.mainAxisSize() }
val mainAxisPositions = mainAxisAlignment.aligner
.align(mainAxisLayoutSize, childrenMainAxisSize)
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt
index 3bd2915..a9d3480 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt
@@ -16,7 +16,6 @@
package androidx.ui.layout
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.core.ComplexLayout
@@ -44,13 +43,13 @@
@Composable
fun MinIntrinsicWidth(children: @Composable() () -> Unit) {
ComplexLayout(children) {
- layout { measurables, constraints ->
+ measure { measurables, constraints ->
val measurable = measurables.firstOrNull()
val width = measurable?.minIntrinsicWidth(constraints.maxHeight) ?: 0.ipx
val placeable = measurable?.measure(
Constraints.tightConstraintsForWidth(width).enforce(constraints)
)
- layoutResult(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
+ layout(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
placeable?.place(0.ipx, 0.ipx)
}
}
@@ -89,13 +88,13 @@
@Composable
fun MinIntrinsicHeight(children: @Composable() () -> Unit) {
ComplexLayout(children) {
- layout { measurables, constraints ->
+ measure { measurables, constraints ->
val measurable = measurables.firstOrNull()
val height = measurable?.minIntrinsicHeight(constraints.maxWidth) ?: 0.ipx
val placeable = measurable?.measure(
Constraints.tightConstraintsForHeight(height).enforce(constraints)
)
- layoutResult(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
+ layout(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
placeable?.place(0.ipx, 0.ipx)
}
}
@@ -134,13 +133,13 @@
@Composable
fun MaxIntrinsicWidth(children: @Composable() () -> Unit) {
ComplexLayout(children) {
- layout { measurables, constraints ->
+ measure { measurables, constraints ->
val measurable = measurables.firstOrNull()
val width = measurable?.maxIntrinsicWidth(constraints.maxHeight) ?: 0.ipx
val placeable = measurable?.measure(
Constraints.tightConstraintsForWidth(width).enforce(constraints)
)
- layoutResult(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
+ layout(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
placeable?.place(0.ipx, 0.ipx)
}
}
@@ -179,13 +178,13 @@
@Composable
fun MaxIntrinsicHeight(children: @Composable() () -> Unit) {
ComplexLayout(children) {
- layout { measurables, constraints ->
+ measure { measurables, constraints ->
val measurable = measurables.firstOrNull()
val height = measurable?.maxIntrinsicHeight(constraints.maxWidth) ?: 0.ipx
val placeable = measurable?.measure(
Constraints.tightConstraintsForHeight(height).enforce(constraints)
)
- layoutResult(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
+ layout(placeable?.width ?: 0.ipx, placeable?.height ?: 0.ipx) {
placeable?.place(0.ipx, 0.ipx)
}
}
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
index 79225a6..805608f 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
@@ -21,7 +21,6 @@
import androidx.ui.core.dp
import androidx.ui.core.min
import androidx.ui.core.offset
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
@@ -55,7 +54,7 @@
padding: EdgeInsets,
children: @Composable() () -> Unit
) {
- Layout(layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
val measurable = measurables.firstOrNull()
if (measurable == null) {
layout(constraints.minWidth, constraints.minHeight) { }
@@ -78,7 +77,7 @@
placeable.place(paddingLeft, paddingTop)
}
}
- }, children = children)
+ }
}
/**
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt
index f852203..ef1b449 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt
@@ -26,7 +26,6 @@
import androidx.ui.core.Placeable
import androidx.ui.core.looseMin
import androidx.ui.core.max
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.ui.core.coerceAtLeast
@@ -112,7 +111,7 @@
}
composable
}
- Layout(children = children, layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
val placeables = arrayOfNulls<Placeable>(measurables.size)
// First measure aligned children to get the size of the layout.
(0 until measurables.size).filter { i -> !measurables[i].positioned }.forEach { i ->
@@ -205,7 +204,7 @@
}
}
}
- })
+ }
}
/**
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt
index 36bc3b2..29eb921 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt
@@ -17,7 +17,6 @@
package androidx.ui.layout
import androidx.annotation.FloatRange
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
import androidx.compose.state
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt
index 3846114..51580b3 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt
@@ -21,7 +21,6 @@
import androidx.ui.core.ipx
import androidx.ui.core.looseMin
import androidx.ui.core.max
-import androidx.compose.Children
import androidx.compose.Composable
import androidx.compose.composer
@@ -36,7 +35,7 @@
*/
@Composable
fun Wrap(alignment: Alignment = Alignment.TopLeft, children: @Composable() () -> Unit) {
- Layout(layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
val measurable = measurables.firstOrNull()
// The child cannot be larger than our max constraints, but we ignore min constraints.
val placeable = measurable?.measure(constraints.looseMin())
@@ -53,5 +52,5 @@
placeable.place(position.x, position.y)
}
}
- }, children=children)
+ }
}
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt b/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
index 547149d8..7e5e527 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
@@ -298,7 +298,7 @@
RepaintBoundary {
child()
}
- }, layoutBlock = { measurables, constraints ->
+ }) { measurables, constraints ->
if (measurables.size > 1) {
throw IllegalStateException("Only one child is allowed")
}
@@ -316,7 +316,7 @@
layout(width, height) {
placeable?.place(xOffset.toIntPx(), yOffset.toIntPx())
}
- })
+ }
}
private val ScrimDefaultOpacity = 0.32f
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt b/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt
index c63e825..ebb427e 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt
@@ -112,7 +112,7 @@
*/
@Composable
private fun SurfaceLayout(children: @Composable() () -> Unit) {
- Layout(children = children, layoutBlock = { measurables, constraints ->
+ Layout(children) { measurables, constraints ->
if (measurables.size > 1) {
throw IllegalStateException("Surface can have only one direct measurable child!")
}
@@ -125,5 +125,5 @@
placeable.place(0.ipx, 0.ipx)
}
}
- })
+ }
}
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/CraneVariousInputField.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/CraneVariousInputField.kt
index 47b3abb..9264729 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/CraneVariousInputField.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/CraneVariousInputField.kt
@@ -272,16 +272,13 @@
if (state.value.text.isNotEmpty()) {
inputField()
} else {
- Layout(
- childrenArray = arrayOf(inputField, hintText),
- layoutBlock = { measurable, constraints ->
- val inputfieldPlacable = measurable[inputField].first().measure(constraints)
- val hintTextPlacable = measurable[hintText].first().measure(constraints)
- layout(inputfieldPlacable.width, inputfieldPlacable.height) {
- inputfieldPlacable.place(0.ipx, 0.ipx)
- hintTextPlacable.place(0.ipx, 0.ipx)
- }
+ Layout(inputField, hintText) { measurable, constraints ->
+ val inputfieldPlacable = measurable[inputField].first().measure(constraints)
+ val hintTextPlacable = measurable[hintText].first().measure(constraints)
+ layout(inputfieldPlacable.width, inputfieldPlacable.height) {
+ inputfieldPlacable.place(0.ipx, 0.ipx)
+ hintTextPlacable.place(0.ipx, 0.ipx)
}
- )
+ }
}
}
\ No newline at end of file