Оптимизация addView/removeAllChildren для кастомного компонента в Android?
Всем привет!
Я новичок в разработке под Android. Передо мной встала довольно простая задача, с которой справился, но пока как-то неполноценно, т.к. ощущение, что я либо не тем путем иду, либо надо банально оптимизировать что-то, т.к. лагает.
Суть задачи: есть элемент в списке (ListView), в нем есть кнопка. При нажатии на кнопку меняется состояние этого элемента и он показывает в некоторой части себя (элемента списка) другую View.
При смене состояния я дергаю removeAllChildren, а потом addView той View, которая у меня заранее была создана LayoutInflator'ом и закеширована.
Тоже самое происходит и когда Adapter пропихивает данные по вызову getView. И вот в этот самый момент когда нужно пересоздать детей и возникает лаг. Если он возникает по нажатии на кнопку — это еще ничего. Но при прокрутке он возникает постоянно, т.к. известно что View представляющие элементы списка в ListView переиспользуются.
Дорогой Хабр, подскажи, пожалуйста мне нубу, как правильно такие вещи делают толковые Android разработчики?
P.S. Я сначала полагал, что дело в том что в элементе списка сложная иерархия layout'ов. Я ее сплющил, заменив одним RelativeLayout и накидав в него компоненты. Но это не помогло, т.к. дело, я уверен, именно в removeAllChildren/addView