LazyVerticalGrid(LazyHorizontalGrid)やLazyColumnでも同様かと思いますがスクロールしたときに他のCompose(View)の表示非表示を切り替えたりしたい場合があります。スクロール状態を取得できるComposeの引数があるかなと思いましたが、少し調べるとModifierでやるようなのでメモしておきます。

val nestedScrollConnection = remember {
    object : NestedScrollConnection {
        override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
            if (available.y >= 0) { /*上にスクロール*/ }
            else { /*下にスクロール*/ } 
            return Offset.Zero
        }
    }
}

LazyVerticalGrid(
    modifier = Modifier.nestedScroll(nestedScrollConnection),
    columns = GridCells.Adaptive(400.dp),
    content = {
        items(listItems) { index ->
            val item = listItems[index]
            // itemを使って表示する内容をここに書く
        }
    }
)
        

if (available.y > 0)にしてしまうとオーバースクロールでも反応してしまうのでif (available.y >= 0)にします。NestedScrollは実装がうまくいかないことも多いので調べながら少しづつやっていこう…。DroidKaigi2023でも発表している人がいたからみんな苦労している感じがする