Perbedaan ScrollView dan NestedScrollView |
Dalam pembuatan aplikasi Android kita tidak boleh asal-asalan, harus diperhatikan dengan baik segala fungsi dari layout activity yang sudah kita buat agar jika aplikasi kita di-Instal user tidak ada kendala. Perlu kalian tahu, jika kita menggunakan CoordinatorLayout yang di dalamnya berisi CollapsingToolbarLayout maka kita direkomendasikan menggunakan NestedScrollView. Mengapa tidak ScrollView?
Menurut stackoverflow, perbedaan ScrollView dan NestedScrollView adalah:
NestedScrollView digunakan jika ada View yang harus di-Scroll (digulir) di dalam View lain yang juga harus di-Scroll. NestedScrollView compatible dengan CoordinatorLayout. Perbedaan mendasar bisa dilihat dari hal di atas, tapi secara behaviour pun, ternyata ScrollView dan NestedScrollView punya sifatnya masing-masing. Saya tidak bisa klasifikasikan ini sebagai kelebihan atau kekurangan, jadi kalian bisa nilai sendiri saat menggunakan keduanya.
Untuk ScrollView, ScrollView akan nge-Scroll balik ke fokus EditText yang sedang aktif. Mungkin kalian bingung, jadi di sini akan saya perlihatkan gambarannya:
ScrollView |
Kalau EditText lagi fokus di dekat Button, mungkin tidak akan kelihatan pengaruhnya di layar. Tapi kalau sudah pakai contoh kasus seperti di atas, EditText di paling atas layar sedangkan Button di paling bawah, ini akan membuat user bingung nantinya.
Hal ini tidak akan terjadi kalau kalian pakai NestedScrollView. Untuk mengatasi masalah di atas dari ScrollView, kalian perlu menambahkan koding untuk menambahkan fokus langsung di ScrollView-nya. Caranya:
ScrollView view = (ScrollView)findViewById(R.id.scrollView);
view.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.requestFocusFromTouch();
return false;
}
});
Sekarang, sebaliknya. Berdasarkan sifatnya, NestedScrollView tidak akan bisa digulir kalau keyboard lagi dalam mode open (sedang dibuka). Kalian lihat kondisinya dari gambar di bawah ini:
NestedScrollView |
<activity android:name=".activities.MainActivity" android:windowsoftinputmode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN">
<category android:name="android.intent.category.LAUNCHER">
</category></action></intent-filter>
</activity>
Demikian informasi yang saya bagikan untuk kalian. Jangan lupa bagikan artikel ini ke teman-teman kalian agar ikut membaca Perbedaan ScrollView dan NestedScrollView ini. Subscribe juga blog Rivaldi 48 ini agar kalian mendapatkan notifikasi saat Admin update artikel terbaru. Semoga kalian lebih nyaman dan mudah dalam mengakses Blog Rivaldi 48 dimanapun kalian berada. Terima Kasih. Follow Instagram Admin @azhardvls_