Dlaczego tak
RecyclerView tworzy tylko tyle widoków wierszy, ile mieści się na ekranie, a podczas przewijania ponownie wykorzystuje je (wzorzec ViewHolder), podstawiając dane kolejnych kontaktów. Umieszczenie 10 000 kontrolek w LinearLayout lub GridLayout tworzy wszystkie naraz, co zużywa dużo pamięci i spowalnia przewijanie. Spinner to lista rozwijana do wyboru jednej wartości, a nie widok długiej listy.