Вы можете подойти к проблеме по двум основным направлениям:
Использование ScrollView
с Linear
- или RelativeLayout
внутри. Затем вы добавляете элементы в свой код, измеряя каждый и помещая их в новые строки, когда это необходимо. Для этого потребуется создание некоторой логики, но она достижима. ScrollView позаботится о прокрутке, если содержимое превышает высоту экрана. Проблема с этим решением заключается в том, что у вас не будет механизма рециркуляции, что может привести к проблемам с памятью, когда список будет длинным.
Используйте RecyclerView
! : -D Одной из замечательных особенностей RecyclerView
является тот факт, что, предоставляя стандартную концепцию списка элементов на основе адаптера, он также позволяет вам реализовать пользовательский LayoutManager
. Создайте свою собственную реализацию LayoutManager
, которая позиционирует элементы на основе их измерения, и вы закончите, RecyclerView
позаботится о прокрутке и переработке предметов для вас! : -D Это займет некоторое время, особенно если у вас нет опыта работы с RecyclerView
, но все это займет не более нескольких часов и, по моему скромному мнению, действительно того стоит.
Вы можете выбрать либо, но второй подход является более современным и, в общем, проще реализовать. В общем, вы должны научиться использовать RecyclerView
, он помогает много и быстрее реализуется, чем старый добрый List
- и GridViews
, как только вы его повесите.
Я рассмотрел использование 'RecyclerView', но проблема заключается в использовании его в' ScrollView', который действительно не работает. –
И зачем вам 'ScrollView'? – Kelevandos
У меня есть другие элементы на одном и том же макете, и вышеупомянутое «GridView» будет последним в макете. –