Nacho Ruiz Martin
07/24/2021, 5:43 PMTheDukerChip
08/16/2021, 11:15 AMtop.*
and bottom.*
will be ignored, likewise start.*
and end.*
will be ignored for horizontal constraints
What we can do is add Spacer
elements in between these composable and add it to the vertical chain
Here is the snippet
ConstraintLayout(modifier = Modifier.fillMaxSize()) {
val startGuideLine = createGuidelineFromStart(14.dp)
val endGuideLine = createGuidelineFromEnd(14.dp)
val (emailRef, passwordRef, buttonRef, usernmeSpacerRef, passwordSpacerRef) = createRefs()
createVerticalChain(
emailRef,
usernmeSpacerRef,
passwordRef,
passwordSpacerRef,
buttonRef,
chainStyle = ChainStyle.Packed,
)
TextField(
value = username,
onValueChange = userNameChange,
modifier = Modifier.constrainAs(emailRef) {
start.linkTo(startGuideLine)
end.linkTo(endGuideLine)
}
)
Spacer(modifier = Modifier.size(14.dp).constrainAs(usernmeSpacerRef){})
TextField(
value = password,
onValueChange = passwordChange,
modifier = Modifier.constrainAs(passwordRef) {
start.linkTo(startGuideLine)
end.linkTo(endGuideLine)
}
)
Spacer(modifier = Modifier.size(14.dp).constrainAs(passwordSpacerRef){})
Button(
onClick = submitClicked,
modifier = Modifier.constrainAs(buttonRef) {
start.linkTo(startGuideLine)
end.linkTo(endGuideLine)
}
) {
Text(text = "Login")
}
}
Nacho Ruiz Martin
08/16/2021, 8:38 PM