В чем разница между ScrollView
и NestedScrollView
? Оба они расширяются FrameLayout
. Я хочу подробно узнать плюсы и минусы их обоих.
160
В чем разница между ScrollView
и NestedScrollView
? Оба они расширяются FrameLayout
. Я хочу подробно узнать плюсы и минусы их обоих.
Ответы:
NestedScrollView
как следует из названия, используется, когда есть необходимость в представлении с прокруткой внутри другого представления с прокруткой. Обычно это будет трудно сделать, так как система не сможет решить, какой вид прокручивать.Это где
NestedScrollView
приходит.источник
В дополнение к вложенной прокрутке
NestedScrollView
добавлена одна основная функциональность, которая может даже сделать ее интересной вне вложенных контекстов: она имеет встроенную поддержкуOnScrollChangeListener
. ДобавлениеOnScrollChangeListener
к оригинальномуScrollView
API 23, приведенному ниже, требовало создания подклассовScrollView
или возни с ними,ViewTreeObserver
ScrollView
что часто означает даже больше работы, чем создание подклассов. СNestedScrollView
этим можно сделать используя встроенный сеттер .источник
Помимо преимуществ, перечисленных в приведенных ответах, еще одним преимуществом NestedScrollView над ScrollView является его совместимость с CoordinatorLayout. ScrollView не взаимодействует с CoordinatorLayout. Вы должны использовать NestedScrollView, чтобы получить «прокрутку вне экрана» для панели инструментов.
Панель инструментов не рухнет с Scrollview как дочерний элемент CoordinatorLayout
источник
NestedScrollView
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
https://developer.android.com/reference/android/widget/ScrollView.html
источник
NestedScrollView похож на ScrollView, но в NestedScrollView мы можем поставить другие прокручиваемые представления как дочерние, например, RecyclerView.
Но если мы поместим RecyclerView в NestedScrollView, плавная прокрутка RecyclerView будет нарушена. Итак, чтобы вернуть плавную прокрутку, есть хитрость:
поставьте строку выше после установки адаптера для recyclerView.
источник
Я думаю, что одним из преимуществ использования представления «Вложенная прокрутка» является то, что раскладка cooridinator прослушивает только вложенные события прокрутки. Так что если для экс. Вы хотите, чтобы панель инструментов прокручивалась вниз при прокрутке содержимого активности, она будет прокручиваться только вниз, когда вы используете вложенный вид прокрутки в макете. Если вы используете обычный вид прокрутки в макете, панель инструментов не будет прокручиваться, когда пользователь прокручивает содержимое.
источник