Class

FocusOrder

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
                }
            )
        }
    }
}