Apa perbedaan antara ScrollView
dan NestedScrollView
? Keduanya, perpanjang FrameLayout
. Saya ingin tahu secara mendalam pro dan kontra dari keduanya.
android
xml
android-layout
android-scrollview
android-nestedscrollview
Chintan Soni
sumber
sumber
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.sumber
Selain pengguliran bersarang
NestedScrollView
menambahkan satu fungsi utama, yang bahkan dapat membuatnya menarik di luar konteks bersarang: Ini telah membangun dukungan untukOnScrollChangeListener
. MenambahkanOnScrollChangeListener
dengan aslinyaScrollView
bawah API 23 diperlukan subclassingScrollView
atau main-main denganViewTreeObserver
dariScrollView
yang sering berarti lebih banyak pekerjaan daripada subclassing. DenganNestedScrollView
itu bisa dilakukan menggunakan setter bawaan .sumber
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
sumber
NestedScrollView
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
https://developer.android.com/reference/android/widget/ScrollView.html
sumber
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:
Letakkan baris di atas setelah mengatur adaptor untuk recyclerView.
sumber
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.
sumber