RecyclerView + AdapterDelegates.
Предполагаю, что большинство вьюх одинаковые, и, следовательно, будут переиспользоваться.
Даже если они все разные(чему я буду удивлен), всё равно они будут создаваться лениво по мере необходимости.
В особо сложных случаях придется написать свой LayoutManager для этого.