<h2 id="lazyhorizontalgrid-rows-modifier-state-contentpadding-reverselayout-horizontalarrangement-verticalarrangement-flingbehavior-userscrollenabled-overscrolleffect-content">LazyHorizontalGrid</h2>

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

```kotlin
@Composable
fun LazyHorizontalGrid(
    rows: GridCells,
    modifier: Modifier = Modifier,
    state: LazyGridState = rememberLazyGridState(),
    contentPadding: PaddingValues = PaddingValues(0.dp),
    reverseLayout: Boolean = false,
    horizontalArrangement: Arrangement.Horizontal =
        if (!reverseLayout) Arrangement.Start else Arrangement.End,
    verticalArrangement: Arrangement.Vertical = Arrangement.Top,
    flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
    userScrollEnabled: Boolean = true,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: LazyGridScope.() -> Unit,
)
```

A lazy horizontal grid layout. It composes only visible columns of the grid.

Sample:

Sample with custom item spans:

#### Parameters

| | |
| --- | --- |
| rows | a class describing how cells form rows, see [GridCells](/jetpack-compose/androidx.compose.foundation/foundation/interfaces/GridCells) doc for more information |
| modifier | the modifier to apply to this layout |
| state | the state object to be used to control or observe the list's state |
| contentPadding | specify a padding around the whole content |
| reverseLayout | reverse the direction of scrolling and layout. When `true`, items are laid out in the reverse order and [LazyGridState.firstVisibleItemIndex](/jetpack-compose/androidx.compose.foundation/foundation/classes/LazyGridState) == 0 means that grid is scrolled to the end. Note that [reverseLayout](/jetpack-compose/androidx.compose.foundation/foundation/composable-functions/LazyHorizontalGrid) does not change the behavior of [horizontalArrangement](/jetpack-compose/androidx.compose.foundation/foundation/composable-functions/LazyHorizontalGrid), e.g. with `Arrangement.Start` [123###] becomes [321###]. |
| verticalArrangement | The vertical arrangement of the layout's children |
| horizontalArrangement | The horizontal arrangement of the layout's children |
| flingBehavior | logic describing fling behavior |
| userScrollEnabled | whether the scrolling via the user gestures or accessibility actions is allowed. You can still scroll programmatically using the state even when it is disabled. |
| overscrollEffect | the [OverscrollEffect](/jetpack-compose/androidx.compose.foundation/foundation/interfaces/OverscrollEffect) that will be used to render overscroll for this layout. Note that the [OverscrollEffect.node](/jetpack-compose/androidx.compose.foundation/foundation/interfaces/OverscrollEffect) will be applied internally as well - you do not need to use Modifier.overscroll separately. |
| content | the [LazyGridScope](/jetpack-compose/androidx.compose.foundation/foundation/interfaces/LazyGridScope) which describes the content |

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

> **Deprecated** Use the non deprecated overload

<hr class="docs-overload-divider">

<h2 id="lazyhorizontalgrid-rows-modifier-state-contentpadding-reverselayout-horizontalarrangement-verticalarrangement-flingbehavior-userscrollenabled-content">LazyHorizontalGrid</h2>

```kotlin
@Composable
fun LazyHorizontalGrid(
    rows: GridCells,
    modifier: Modifier = Modifier,
    state: LazyGridState = rememberLazyGridState(),
    contentPadding: PaddingValues = PaddingValues(0.dp),
    reverseLayout: Boolean = false,
    horizontalArrangement: Arrangement.Horizontal =
        if (!reverseLayout) Arrangement.Start else Arrangement.End,
    verticalArrangement: Arrangement.Vertical = Arrangement.Top,
    flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
    userScrollEnabled: Boolean = true,
    content: LazyGridScope.() -> Unit,
)
```