Perbedaan ScrollView dan NestedScrollView di Android Studio

Perbedaan ScrollView dan NestedScrollView di Android Studio

Perbedaan ScrollView dan NestedScrollView di Android Studio

Kita akan membahas sebuah artikel yang membahas tentang Perbedaan ScrollView dan NestedScrollView di Android Studio. Walaupun dalam fungsi hampir tidak kelihatan perbedaannya, tetapi jika kalian perhatikan baik-baik perbedaan ScrollView dan NestedScrollView cukup terasa dalam aplikasi Android.

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:

Perbedaan ScrollView dan NestedScrollView
ScrollView

Kalau kalian lihat gambar di atas, kalian mungkin bisa tahu kalau setiap kali Button di klik, maka layar kembali ke-Scroll ke atas. Ini terjadi karena ada EditText yang sedang dalam kondisi “focus” (bisa dilihat dari cursor yang berkedip). ScrollView punya kecenderungan untuk menampilkan EditText yang sedang fokus itu.

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.

TRENDING:  Aplikasi Kartu Vaksin, Begini Cara Downloadnya

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:

Perbedaan ScrollView dan NestedScrollView
NestedScrollView

Kondisi di atas merupakan kondisi normal dari ScrollView. Saat waktu keyboard lagi dalam kondisi terbuka, layar bisa di-Scroll. Tetapi, kondisi di atas tidak akan bisa kalian temui di NestedScrollView. Bisa kalian coba. Saat keyboard menutupi layar, kalian cuma bisa nge-Scroll layarnya sampai jarak tertentu yang sudah kamu atur witdh dan height-nya. Jadi intinya, kalau dari awal layarnya memang sudah tampil sepenuhnya di layar, layar tidak akan nge-Scroll. Walaupun ada View yang ke tutup keyboard. Solusi dari hal ini adalah tambahkan android:windowSoftInputMode=”adjustResize” di AndroidManifest.xml kalian.

<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 di Android Studio ini.