Specifies custom focus destinations that are used instead of the default focus traversal order.
CustomFocusOrderSample
@Composable
fun CustomFocusOrderSample() {
Column(Modifier.fillMaxSize(), Arrangement.SpaceEvenly) {
val (item1, item2, item3, item4) = remember { FocusRequester.createRefs() }
Row(Modifier.fillMaxWidth(), Arrangement.SpaceEvenly) {
Box(
Modifier.focusRequester(item1)
.focusProperties {
next = item2
right = item2
down = item3
previous = item4
}
.focusable()
)
Box(
Modifier.focusRequester(item2)
.focusProperties {
next = item3
right = item1
down = item4
previous = item1
}
.focusable()
)
}
Row(Modifier.fillMaxWidth(), Arrangement.SpaceEvenly) {
Box(
Modifier.focusRequester(item3).focusProperties {
next = item4
right = item4
up = item1
previous = item2
}
)
Box(
Modifier.focusRequester(item4).focusProperties {
next = item1
left = item3
up = item2
previous = item3
}
)
}
}
}