Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Striker
Ведущий программист C#
240 / 219 / 154
Регистрация: 19.08.2012
Сообщений: 498
Записей в блоге: 1
1

Не прокручивать ListView при добавлении в него данных

29.08.2014, 16:32. Просмотров 960. Ответов 1

Добрый день!

Подскажите пожалуйста.
Делаю программу. В ней есть функционал на подобии чата. Т.е. новые сообщения снизу, старые сверху. Всё это показывает ListView.
Когда происходит вызов метода обновления чата, чат перелистывается в конец. Получается, если кто-то написал, а другой в этот момент смотрел старые сообщения, то его чат прокрутится вниз.
Как можно реализовать сохранение позиции просмотра ListView и после фонового обновления данного ListView остаться в том же месте, при этом где-то внизу добавиться сообщение.

Я использовал это:

setSelection, getFirstVisiblePosition и getLastVisiblePosition - но меня не устроило. Потому что он перескакивает на сообщение, а не позицию прокрутки(или как ещё её назвать)

Вроде бы понятно объяснил)

Заранее большое спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2014, 16:32
Ответы с готовыми решениями:

Как изменить цвет пункта ListView при нажатии на него и сохранять его цвет при проматывании списка?
Здравствуйте, подскажите, пожалуйста, как изменить цвет пункта ListView при...

Ошибка при добавлении в базу данных
Здравствуйте! Я раньше не работал с бд, это мое первое приложение, делал...

Ошибка при добавлении данных в список
Здравствуйте, такой вопрос, у меня список и собственный адаптер, в адаптере...

Изменение данных в ListView при вводе текста
Есть активность с AutoCompleteTextView и ListView. В ListView данные выводятся...

Обновление данных ListView при подключении к сети WiFi Android
Написал приложение для получения курса валют с сайта РБК. Все работает кроме...

1
UserAK
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
30.08.2014, 00:17 2
Первое, что приходит в голову, это кэшировать сам чат. Отделить массив сообщений от визуального представления и выдавать массив сообщений по запросу.

Добавлено через 1 минуту
Хотя это скорее всего меняет логику программы, как-бы разрывает связь между массивом сообщений и адаптером списка.

Добавлено через 2 минуты
Но с другой стороны - адаптер это "быстрый" вариант визуализации списка. Можно и обойтись без адаптера, может быть потери в производительности особой не будет.

Добавлено через 3 минуты
Ну или вы наследуете и дописываете адаптер таким образом, что бы он там как-то не сразу, а по флагу обновлял список.

Добавлено через 30 секунд
В конце концов это вы программист, а не я ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2014, 00:17

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

Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что...

Копирование данных из 1 listView во 2 listView
Нужно что бы при нажатии на один элемент в первом ListView он копировался во...


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

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

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