focusOrder

Compose Modifier

Common

Deprecated Use focusProperties() instead

fun Modifier.focusOrder(
    @Suppress("DEPRECATION") focusOrderReceiver: FocusOrder.() -> Unit
): Modifier

Use this modifier to specify a custom focus traversal order.

Parameters

focusOrderReceiverSpecifies FocusRequesters that are used when the user wants to move the current focus to the next item, or wants to move focus left, right, up or down.
Common

Deprecated Use focusRequester() instead

fun Modifier.focusOrder(focusRequester: FocusRequester): Modifier

A modifier that lets you specify a FocusRequester for the current composable so that this focusRequester can be used by another composable to specify a custom focus order.

Common

Deprecated Use focusProperties() and focusRequester() instead

fun Modifier.focusOrder(
    focusRequester: FocusRequester,
    @Suppress("DEPRECATION") focusOrderReceiver: FocusOrder.() -> Unit,
): Modifier

A modifier that lets you specify a FocusRequester for the current composable along with focusOrder.

Code Examples

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