Nipun Rajput
11/05/2020, 8:28 AMval textStateList = remember { mutableStateListOf<MutableState<TextFieldValue>>() }
val focusRequesters = List(4) { FocusRequester() }
Row(
modifier = Modifier
.fillMaxWidth()
.padding(start = 15.dp, end = 15.dp)
.align(Alignment.CenterHorizontally)
) {
for (i in 0..3) {
key(i) {
val textState = mutableStateOf(TextFieldValue(""))
textStateList.add(textState)
OTPTextBox(
modifier = Modifier.weight(1F).align(Alignment.CenterVertically),
textState = textState,
if (i == 3) ImeAction.Done else ImeAction.Next,
focusRequesters[i],
if (i > 0) focusRequesters[i - 1] else null,
if (i < 3) focusRequesters[i + 1] else null
)
if (i < 3)
Spacer(modifier = Modifier.width(15.dp))
}
}
}
For OTPTextBox
TextField(
value = textState.value,
onValueChange = { newValue ->
nextFocusRequester?.requestFocus()
textState.value = newValue
},
modifier = modifier
.fillMaxWidth()
.border(width = 1.dp, color = offWhite, shape = RoundedCornerShape(10.dp))
.focusRequester(focusRequester)
.padding(24.dp))