Что такое NestedScrollConnection

«Что такое NestedScrollConnection» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

NestedScrollConnection — интерфейс в Jetpack Compose, позволяющий родительскому и дочернему скролл-контейнеру координировать скроллинг. Он определяет, как обрабатывать вложенные события прокрутки, например, когда LazyColumn находится внутри ScrollableRow.

Основные методы:

  • onPreScroll: вызывается перед скроллом дочернего элемента.
  • onPostScroll: вызывается после скролла дочернего элемента.
  • onPreFling: вызывается перед инерционным скроллом (fling).
  • onPostFling: вызывается после инерционного скролла.

Пример:

val nestedScrollConnection = object : NestedScrollConnection {  
    override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {  
        return Offset.Zero // Можно вернуть потреблённый offset  
    }  
}  

Box(  
    modifier = Modifier.nestedScroll(nestedScrollConnection)  
) { /* ... */ }