У меня есть ListView
с кастомами Adapter
. Если честно, у меня их много одновременно на экране, и мое устройство Tegra 3 начало отставать, что меня сильно смутило ... Я обнаружил, что в каждом ListView
Adapter
getView()
метод вызывается для всех видимых строк каждые время любая анимация запускается на экране. Это дает мне несколько сотен звонков в секунду! Копая больше, большинство этих вызовов происходит из-за measure()
и onMeasure()
вызовов родителей ListView
s, и - это ключ tke - они бесполезны, потому что все макеты моих ListView
s
имеют постоянный размер.
Итак, мой вопрос: как устранить эти звонки? Конечно, я хочу оставить только правильные вызовы (вызванные добавлением элементов в Adapter
и notifyDataSetChanged()
).
Я попробовал почти все, но либо весь список не отрисовывается сам (когда я переопределяю его onMeasure()
и вынужден возвращать постоянный размер без вызова super.onMeasure()
), либо прекращает обновление через некоторое время.