Arasındaki fark nedir ScrollView
ve NestedScrollView
? İkisi de genişler FrameLayout
. Her ikisinin de artılarını ve eksilerini derinlemesine bilmek istiyorum.
Arasındaki fark nedir ScrollView
ve NestedScrollView
? İkisi de genişler FrameLayout
. Her ikisinin de artılarını ve eksilerini derinlemesine bilmek istiyorum.
Yanıtlar:
NestedScrollView
Adından da anlaşılacağı gibi, başka bir kaydırma görünümünün içinde bir kaydırma görünüme ihtiyaç duyulduğunda kullanılır. Normalde, sistem hangi görünümü kaydıracağına karar veremeyeceği için bunu başarmak zor olacaktır.
İşte burada NestedScrollView
devreye giriyor.
Ek olarak iç içe kaydırma NestedScrollView
O verilen desteğin birikimine sahiptir: Hatta iç içe bağlamlarda ilginç dışında yapabiliriz önemli bir işlevsellik ekledi OnScrollChangeListener
. Bir ekleme OnScrollChangeListener
orijinaline ScrollView
API 23 altına sınıflara gerekli ScrollView
veya ile karıştırmasını ViewTreeObserver
arasındaScrollView
hangi sıklıkta sınıflara daha fazla iş anlamına gelir. İle NestedScrollView
o kullanılarak yapılabilir yap-setter .
Verilen cevaplarda listelenen avantajların dışında, NestedScrollView'ın ScrollView'a göre bir avantajı da CoordinatorLayout ile uyumluluğudur. ScrollView, CoordinatorLayout ile işbirliği yapmaz. Araç çubuğu için "ekran dışında kaydırma" davranışı elde etmek için NestedScrollView kullanmanız gerekir.
Araç Çubuğu, CoordinatorLayout'un alt öğesi olarak Scrollview ile daralmayacak
NestedScrollView
NestedScrollView, ScrollView gibidir, ancak Android'in hem yeni hem de eski sürümlerinde hem yuvalanmış kaydırma üst öğesi hem de alt öğe olarak davranmayı destekler. İç içe kaydırma, varsayılan olarak etkindir.
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
Kullanıcı tarafından kaydırılabilen ve fiziksel ekrandan daha büyük olmasına izin veren bir görünüm hiyerarşisi için düzen konteyneri. Bir ScrollView bir FrameLayout'tur, yani kaydırılacak içeriğin tamamını içeren bir alt öğe yerleştirmelisiniz; bu çocuğun kendisi karmaşık bir nesne hiyerarşisine sahip bir düzen yöneticisi olabilir
https://developer.android.com/reference/android/widget/ScrollView.html
NestedScrollView tıpkı ScrollView gibidir, ancak NestedScrollView'da diğer kaydırma görünümlerini onun alt öğesi olarak koyabiliriz, örneğin RecyclerView.
Ancak RecyclerView'ı NestedScrollView'a koyarsak RecyclerView'ın düzgün kaydırması bozulur. Dolayısıyla, düzgün kaydırmayı geri getirmek için bir numara var:
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
recyclerView için adaptörü ayarladıktan sonra çizginin üstüne koyun.
Bence İç içe Kaydırma görünümünü kullanmanın bir Yararı, koordinatör düzeninin yalnızca iç içe kaydırma olaylarını dinlemesi. Öyleyse eski için. Araç çubuğunun, etkinlik içeriğinizi kaydırdığınızda aşağı kaydırmasını istiyorsanız, yalnızca düzeninizde iç içe kaydırma görünümünü kullandığınızda aşağı kayacaktır. Düzeninizde normal bir kaydırma görünümü kullanırsanız, kullanıcı içeriği kaydırdığında araç çubuğu kaymaz.