Alexandru Hadăr
05/10/2021, 6:43 PMTextFields
and a Button
at the bottom of the screen (max space between the Button
and TextFields
). What I’m trying to achieve is that when keyboard is opened, the button will be pushed up till below the last `TextField`(with minimum space between), so the user only has to scroll a bit to push the button.
(🧵 with some attempts)Alexandru Hadăr
05/10/2021, 6:43 PMColumn(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
) {
TextField(value = "Field 1", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 2", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 3", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 4", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 5", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 6", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 7", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 8", onValueChange = {}, modifier = Modifier.fillMaxWidth())
TextField(value = "Field 9", onValueChange = {}, modifier = Modifier.fillMaxWidth())
Box(
modifier = Modifier.fillMaxHeight(),
contentAlignment = Alignment.BottomCenter
) {
Button(
onClick = {},
Modifier
.fillMaxWidth()
.height(48.dp)
) {
Text("Button", modifier = Modifier.alignByBaseline())
}
}
}
Alexandru Hadăr
05/10/2021, 6:43 PM.verticalScroll(rememberScrollState())
However, this seems to ignore any Modifier.fillMaxHeight()
Alexandru Hadăr
05/10/2021, 6:43 PMSpacer(modifier = Modifier.fillMaxHeight)
, but I get the same treatment back.Alexandru Hadăr
05/10/2021, 6:44 PMverticalScroll
on, however the second image shows what happens when I have both verticalScroll
and fillMaxHeight
Alexandru Hadăr
05/10/2021, 6:44 PMnglauber
05/10/2021, 7:52 PMandroid:windowSoftInputMode="adjustResize"
then, in your composable
Column(Modifier.fillMaxSize()) {
Column(
Modifier
.fillMaxWidth()
.weight(1f)
.verticalScroll(
rememberScrollState()
)
) {
// Your TextFields here...
}
Button(...)
}
Alexandru Hadăr
05/10/2021, 10:26 PMnglauber
05/11/2021, 12:16 AMnglauber
05/11/2021, 12:18 AMAlexandru Hadăr
06/04/2021, 3:05 PMAlexandru Hadăr
06/04/2021, 3:06 PMSurface(modifier = Modifier.fillMaxSize()) {
Column(
modifier = Modifier
.fillMaxWidth()
.verticalScroll(rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally,
) {
for (i in 0..7) {
TextField(value = "TextField #$i", {})
Spacer(modifier = Modifier.height(8.dp))
}
Spacer(modifier = Modifier.weight(1f))
Button(onClick = { /*TODO*/ }, modifier = Modifier.padding(bottom = 16.dp)) {
Text("Click me")
}
}
}
nglauber
06/04/2021, 3:07 PM