Android: ScrollView vs NestedScrollView


160

Apa perbedaan antara ScrollViewdan NestedScrollView? Keduanya, perpanjang FrameLayout. Saya ingin tahu secara mendalam pro dan kontra dari keduanya.


Jawaban:


205

NestedScrollViewseperti 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 NestedScrollViewmasuk.


Berikut ini contoh Aplikasi yang menunjukkan NestedScrollView dalam sebuah induk ScrollView: github.com/AdamSHurwitz/NestedScrolling
Adam Hurwitz

36

Selain pengguliran bersarang NestedScrollView menambahkan satu fungsi utama, yang bahkan dapat membuatnya menarik di luar konteks bersarang: Ini telah membangun dukungan untuk OnScrollChangeListener. Menambahkan OnScrollChangeListenerdengan aslinya ScrollView bawah API 23 diperlukan subclassing ScrollViewatau main-main dengan ViewTreeObserverdariScrollView yang sering berarti lebih banyak pekerjaan daripada subclassing. Dengan NestedScrollViewitu bisa dilakukan menggunakan setter bawaan .



21

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


8

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.


Terima kasih banyak kawan: D
Zafar Iqbal

Perlu diingat bahwa melakukan ini (recyclerView inside a Nested) cukup tidak efisien dalam hal tata letak pass / tindakan. Uji dan Anda akan melihat bagaimana RV menghentikan pandangan "daur ulang".
Martin Marconcini

2

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.