https://kotlinlang.org logo
#compose
Title
# compose
k

Kazemihabib1996

03/16/2020, 7:34 PM
I'm playing with constraints to see how it works so I set the minWidth to
200.ipx
and MaxWidth to 300.ipx but the when I print the constraints minWidth is
0.ipx
, MaxWidth's value is 300.ipx as expected.
Copy code
WithConstraints { constraints ->
        Log.d("Constraints", constraints.toString())
        with(DensityAmbient.current) {
            Container( modifier = LayoutWidth.Constrain(200.ipx.toDp(), 300.ipx.toDp())) {
                    WithConstraints { constraints2 ->
                        Log.d("Constraints2", constraints2.toString())
                        Column() {
                            Text("Test1")
                            Text("Test2")
                        }
                    }
                }
            }
        }
The log:
D/Constraints: Constraints(minWidth=0.ipx, maxWidth=800.ipx, minHeight=0.ipx, maxHeight=1173.ipx)
D/Constraints2: Constraints(minWidth=0.ipx, maxWidth=300.ipx, minHeight=0.ipx, maxHeight=1173.ipx)
z

Zach Klippenstein (he/him) [MOD]

03/16/2020, 9:59 PM
I think that means Container lets its children be as small as they want, even when the container itself will be min width 200.
1
🙏 1
k

Kazemihabib1996

03/17/2020, 11:55 AM
You are absolutely right Container source:
val childConstraints = containerConstraints
.copy(minWidth = 0.ipx, minHeight = 0.ipx)
.offset(-totalHorizontal, -totalVertical)
3 Views