Если вы используете, к примеру, RecyclerView компонент внутри ScrollView layout, то могут возникнуть коллизии, связанные с тем, что оба элемента пытаются обработать прокрутку.
Вот типичные варианты решения.
Отключение прокрутки в RecyclerView
Так как контейнер уже итак прокручивается, то нет можно отключить прокрутку в RecyclerView. Это обнулит все положительные свойства компонента, связанные с оптимизацией. Так как ему придется отрендерить все элементы списка.
Для небольшого числа элементов это тем не менее может быть вполне рабочим решением.
1 2 3 4 5 |
<androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none" /> |
Если же хочется сохранить эффективность данного компонента, но при этом избежать проблем с прокруткой, то нужно заменить ScrollView на NestedScrollView
1 2 3 4 5 6 7 8 9 10 |
<androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="200dp" /> </androidx.core.widget.NestedScrollView> |
При фиксированной высоте RecyclerView будет обладать собственной прокруткой, занимая указанный размер в общей высоте разметки макета.