Более быстрая загрузка ListView, быстрее, чем метод Viewholder
При раздувании представлений для listView лучше ли иметь все текстовые элементы без андроида: текст в файле .xml и сколько это влияет на скорость? Что относительно ViewStubs, было бы еще быстрее?
При раздувании LinearLayout с 8 текстовыми элементами без андроида: текст и с android: text = "@string/abc", это что-то меняет?
обратите внимание, что я повторно использую виды, поэтому, возможно, только 10 раздуваются, а затем повторно используются, я не знаю.
Я развиваюсь на ZTE Blade, так что это единственный процессор 600 МГц, а не четырехъядерный ядро ...
Ответы
Ответ 1
Вы можете попробовать это, не уверен, что это ускорится, но сделайте снимок.
Надуйте макет в фоновом потоке.
View getView(int position, View convertView, ...) {
View v;
if (convertView == null) {
Start a background thread to inflate your linearLayout.
Pass item data and view 'v' to it.
v = inflate a simple dummy textview;
return v;
}
set normal stuff to convertview here.
return convertView ;
}
В фоновом потоке
Ответ 2
Это очень полезно при ускорении просмотров списка, особенно бит "Просмотр владельца": http://developer.android.com/training/improving-layouts/smooth-scrolling.html
У меня также есть ZTE Blade, они медленные, но приложения, которые хорошо работают на нем, отлично работают на обычных телефонах:)
Ответ 3
Если вы все равно заменяете текст в текстовом виде, вам не следует беспокоиться о том, чтобы заполнить их в XML.
Настоящим убийцей для производительности, который заманчиво делать в простых списках, является вложенное linearlayouts. С небольшим количеством работы любое дерево linearlayout может быть заменено на relativelayout.
Убедитесь, что вы не используете findViewById вне if (convertView == null) {блокируйте либо с помощью стиля ViewHolder, либо просто устанавливая в view.setTag(R.id.resId, findViewById (R.id.resID) )
Вы упомянули в комментариях, что вы испытываете задержку при возврате из своей асинтезы. Убедитесь, что вы не перезагружаете таблицу после каждой записи. Сделайте массовое обновление источника данных, а затем перезагрузите таблицу.