---
title: "BringIntoViewRequester"
description: "Can be used to send [bringIntoView] requests. Pass it as a parameter to
[Modifier.bringIntoViewRequester()][bringIntoViewRequester].

For instance, you can call [bringIntoView()][bringIntoView] to make all the scrollable parents
scroll so that the specified item is brought into the scroll viewport."
type: "interface"
---

<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
sealed interface BringIntoViewRequester
```


Can be used to send `bringIntoView` requests. Pass it as a parameter to
`Modifier.bringIntoViewRequester()`.

For instance, you can call `bringIntoView()` to make all the scrollable parents
scroll so that the specified item is brought into the scroll viewport.


## Functions

```kotlin
suspend fun bringIntoView(rect: Rect? = null)
```


Bring this item into bounds by making all the `BringIntoViewModifierNode` parents to bring
their content appropriately.

This method will not return until this request is satisfied or a newer request interrupts it.
If this call is interrupted by a newer call, this method will throw a
`CancellationException`.

#### Parameters

| | |
| --- | --- |
| rect | The rectangle (In local coordinates) that should be brought into view. If you don't specify the coordinates, the coordinates of the `Modifier.bringIntoViewRequester()` associated with this `BringIntoViewRequester` will be used. |




## Code Examples

### BringIntoViewSample
```kotlin
@Composable
fun BringIntoViewSample() {
    Row(Modifier.horizontalScroll(rememberScrollState())) {
        repeat(100) {
            val bringIntoViewRequester = remember { BringIntoViewRequester() }
            val coroutineScope = rememberCoroutineScope()
            Box(
                Modifier
                    // This associates the RelocationRequester with a Composable that wants to be
                    // brought into view.
                    .bringIntoViewRequester(bringIntoViewRequester)
                    .onFocusChanged {
                        if (it.isFocused) {
                            coroutineScope.launch {
                                // This sends a request to all parents that asks them to scroll so
                                // that this item is brought into view.
                                bringIntoViewRequester.bringIntoView()
                            }
                        }
                    }
                    .focusTarget()
            )
        }
    }
}
```

### BringPartOfComposableIntoViewSample
```kotlin
@Composable
fun BringPartOfComposableIntoViewSample() {
    with(LocalDensity.current) {
        val bringIntoViewRequester = remember { BringIntoViewRequester() }
        val coroutineScope = rememberCoroutineScope()
        Column {
            Box(
                Modifier.border(2.dp, Color.Black)
                    .size(500f.toDp())
                    .horizontalScroll(rememberScrollState())
            ) {
                Canvas(
                    Modifier.size(1500f.toDp(), 500f.toDp())
                        // This associates the RelocationRequester with a Composable that wants
                        // to be brought into view.
                        .bringIntoViewRequester(bringIntoViewRequester)
                ) {
                    drawCircle(color = Color.Red, radius = 250f, center = Offset(750f, 250f))
                }
            }
            Button(
                onClick = {
                    val circleCoordinates = Rect(500f, 0f, 1000f, 500f)
                    coroutineScope.launch {
                        // This sends a request to all parents that asks them to scroll so that
                        // the circle is brought into view.
                        bringIntoViewRequester.bringIntoView(circleCoordinates)
                    }
                }
            ) {
                Text("Bring circle into View")
            }
        }
    }
}
```

