Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Noosle
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 4
#1

Большое количество итемов в listView! - Программирование Android

10.04.2012, 16:30. Просмотров 983. Ответов 6
Метки нет (Все метки)

При выводе большого количества итемов в listView, используя адаптор, столкнулся с проблемой переполнения памяти. Загуглив, нашел некоторые варианты решений. Как вы фиксите это? Какой на ваш взгляд самый оптимальный способ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2012, 16:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Большое количество итемов в listView! (Программирование Android):

Получить количество строк в TextView (ListView) - Программирование Android
привет всем. уже очень давно никак не могу получить количество строк в TextView который находится в ListView. каждый итем - TextView. ...

Как заставить ListView показывать ограниченное количество элементов? - Программирование Android
Будет динамично заполняющийся лист Как сделать чтобы ListView показывал ограниченное кол-во items, а при нажатии на кнопку more...

Узнать количество строк ListView, которое помещается в Linear Layout - Программирование Android
Подскажите плз. Как узнать какое целое кол-во строк listView может поместиться в Linear Layout. Если у мну такая разметка. ...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

6
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
10.04.2012, 22:04 #2
Загружать объект в память когда он появляется на экране и выгружать когда пропадает. Долго, муторно реализовывать, зато работает.
В случае с множеством bitmap'ов совсем другая сказка... более сложная, с вниканием в суть жизненного цикла объекта bitmap, способами пережатия, которыми оперирует сам android, и тд и тп...
Лучше напишите какие у вас объекты, сколько их...
1
dajver
409 / 273 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
11.04.2012, 23:27 #3
А как по мне просто создать список данных и вынести их в лист вью циклом. Как по мне самое оптимальное.
0
Noosle
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 4
13.04.2012, 15:56  [ТС] #4
Нашел причину - у листвью был установлен background.(картинка) после его отключения все стало работать корректно.

Добавлено через 3 минуты
Как я понял, в моей ситуации при отрисовки нового итема на активити , новый бекграунд ложился поверх старого, что и вызывало лаги =(

Добавлено через 1 час 51 минуту
Теперь не могу понять как запилить нормально background=(
0
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
13.04.2012, 16:42 #5
сделай под listview imageview с нужным бекграундом.
ну + смотря какой бекграунд, что в листвайве... когда идет много графики на обычном canvas в андро, то довольно сложно уследить за тем, чтоб не возникало переполнений памяти... тут уже все происходит, лечится с привязкой к частному случаю, что как и где надо менять.
как вариант можно написать собственный контрол вместо listview, избавив его от лишней нагрузки.
1
Noosle
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 4
13.04.2012, 16:45  [ТС] #6
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listcoctails"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id ="@+id/listimage_bg"
android:layout_height="wrap_content"
android:src="@drawable/menupicture"
android:layout_width="wrap_content"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</RelativeLayout>

Так и сделал. картинка простая. весит 15 кб. Но никак не могу понять, почему когда я ее растягиваю её с помощью fill_parent лаги остаются.
0
Noosle
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 4
25.04.2012, 08:46  [ТС] #7
up!!!!
0
25.04.2012, 08:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2012, 08:46
Привет! Вот еще темы с ответами:

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Переход из Listview в Listview - Программирование Android
Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось новое нужное(т.е. то по которому тапнули) активити с другим...

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru