https://kotlinlang.org logo
Title
s

Suser

01/13/2021, 7:40 AM
I'm just working through the Jetpack Pathway using Desktop and ran into an issue with the Custom Layouts section. just thought i'd mention it here. [detail in comment]
@Composable
fun MyOwnColumn(
    modifier: Modifier = Modifier,
    children: @Composable () -> Unit
) {
    Layout(
        modifier = modifier,
        children = children
    ) { measurables, constraints ->
        // Measure children - code in the previous code snippet
        ...

        // Set the size of the layout as big as it can
        layout(constraints.maxWidth, constraints.maxHeight) {
            // Place children
        }
    }
}
This code here has an issue, specifically the layout() {} part.
e: /Users/aaronbond/dev/personal/ComposePathway/common/src/commonMain/kotlin/com/mechtask/common/Layouts.kt: (107, 5): None of the following functions can be called with the arguments supplied:
public fun Layout(content: () -> Unit, modifier: Modifier = ..., measureBlock: MeasureBlock /* = MeasureScope.(List<Measurable>, Constraints) -> MeasureResult */): Unit defined in androidx.compose.ui.layout public fun Layout(content: () -> Unit, minIntrinsicWidthMeasureBlock: IntrinsicMeasureBlock /* = IntrinsicMeasureScope.(List<IntrinsicMeasurable>, Int) -> Int /, minIntrinsicHeightMeasureBlock: IntrinsicMeasureBlock / = IntrinsicMeasureScope.(List<IntrinsicMeasurable>, Int) -> Int /, maxIntrinsicWidthMeasureBlock: IntrinsicMeasureBlock / = IntrinsicMeasureScope.(List<IntrinsicMeasurable>, Int) -> Int /, maxIntrinsicHeightMeasureBlock: IntrinsicMeasureBlock / = IntrinsicMeasureScope.(List<IntrinsicMeasurable>, Int) -> Int /, modifier: Modifier = ..., measureBlock: MeasureBlock / = MeasureScope.(List<Measurable>, Constraints) -> MeasureResult */): Unit defined in androidx.compose.ui.layout public inline fun Layout(content: () -> Unit, measureBlocks: LayoutNode.MeasureBlocks, modifier: Modifier = ...): Unit defined in androidx.compose.ui.layout
j

jim

01/13/2021, 9:46 AM
Yeah, I think the
children
parameter on
Layout
was renamed to
content
. The codelab needs to be updated accordingly. Thanks for raising this. cc @Nick B
That is to say, you would do something like:
...
Layout(
        modifier = modifier,
        content = children
    ) { measurables, constraints ->
...
🙌 1
s

Suser

01/13/2021, 8:20 PM
Thanks so much @jim yep that's the one.