Apa perbedaan antara ScrollView
dan NestedScrollView
? Keduanya, perpanjang FrameLayout
. Saya ingin tahu secara mendalam pro dan kontra dari keduanya.
Apa perbedaan antara ScrollView
dan NestedScrollView
? Keduanya, perpanjang FrameLayout
. Saya ingin tahu secara mendalam pro dan kontra dari keduanya.
Jawaban:
NestedScrollView
seperti namanya digunakan ketika ada kebutuhan untuk tampilan gulir di dalam tampilan gulir lainnya. Biasanya ini akan sulit dicapai karena sistem tidak akan dapat memutuskan tampilan mana yang akan digulir.
Di sinilah NestedScrollView
masuk.
Selain pengguliran bersarang NestedScrollView
menambahkan satu fungsi utama, yang bahkan dapat membuatnya menarik di luar konteks bersarang: Ini telah membangun dukungan untuk OnScrollChangeListener
. Menambahkan OnScrollChangeListener
dengan aslinya ScrollView
bawah API 23 diperlukan subclassing ScrollView
atau main-main dengan ViewTreeObserver
dariScrollView
yang sering berarti lebih banyak pekerjaan daripada subclassing. Dengan NestedScrollView
itu bisa dilakukan menggunakan setter bawaan .
Selain kelebihan yang tercantum dalam jawaban yang diberikan, satu lagi keunggulan NestedScrollView daripada ScrollView adalah kompatibilitasnya dengan CoordinatorLayout. ScrollView tidak bekerja sama dengan CoordinatorLayout. Anda harus menggunakan NestedScrollView untuk mendapatkan perilaku "gulir di luar layar" untuk toolbar.
Bilah Alat tidak akan runtuh dengan Scrollview sebagai anak dari CoordinatorLayout
NestedScrollView
NestedScrollView sama seperti ScrollView, tetapi mendukung akting sebagai induk dan anak pengguliran bersarang pada versi Android baru dan lama. Pengguliran bersarang diaktifkan secara default.
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
Layout kontainer untuk hierarki tampilan yang dapat digulir oleh pengguna, memungkinkannya lebih besar dari tampilan fisik. ScrollView adalah FrameLayout, artinya Anda harus menempatkan satu anak di dalamnya yang berisi seluruh konten untuk digulir; anak ini sendiri dapat menjadi manajer tata letak dengan hierarki objek yang kompleks
https://developer.android.com/reference/android/widget/ScrollView.html
NestedScrollView sama seperti ScrollView, tetapi di NestedScrollView kita dapat menempatkan tampilan pengguliran lainnya sebagai anak darinya, misalnya RecyclerView.
Tetapi jika kita meletakkan RecyclerView di dalam NestedScrollView, scrolling RecyclerView yang terganggu. Jadi untuk mengembalikan scrolling mulus ada trik:
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
Letakkan baris di atas setelah mengatur adaptor untuk recyclerView.
Saya pikir satu Manfaat menggunakan tampilan Nested Scroll adalah bahwa tata letak cooridinator hanya mendengarkan untuk acara gulir bersarang. Jadi kalau untuk mantan. Anda ingin bilah alat menggulir ke bawah saat Anda menggulir konten aktivitas Anda, itu hanya akan menggulir ke bawah saat Anda menggunakan tampilan gulir bersarang di tata letak Anda. Jika Anda menggunakan tampilan gulir normal di tata letak, bilah alat tidak akan menggulir saat pengguna menggulir konten.