Я не уверен, что это то же самое, что вы делаете, но это звучит похоже на то, что у меня есть в некоторых приложениях, где есть какой-то список пользовательских виджетов. И это значительно замедляет, когда вы создаете и уничтожаете тонны виджетов.
Если проблема заключается в меньшем количестве общих виджетов, но при их большом создании и удалении, вы можете просто создать виджеты один раз и изменить данные этих виджетов только по мере необходимости обновления информации ... в отличие от создавать новые виджеты каждый раз, когда информация меняется. Таким образом, вы даже можете изменять данные из потоков, не беспокоясь о создании виджетов.
Другая ситуация, когда вы отображаете список с пользовательскими виджетами, и вы получаете ТОННУ результатов. Я заметил, что это всегда замедляется, когда у вас есть 1000 пользовательских виджетов в списке. Прикол, который придумал мой коллега, заключался в том, чтобы иметь поддельный вид списка, в котором он использует статическое количество слотов на дисплее. Скажем, это показывает 10 слотов в представлении. Полоса прокрутки на самом деле не прокручивается вниз по БОЛЕЕ виджету ... она выполняет прокрутку ДАННЫХ через 10 видимых виджетов. Вы можете безумно увеличить производительность, делая это. Но только если это приемлемый стиль отображения для вашего приложения.