Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Striker
Ведущий программист C#
239 / 218 / 49
Регистрация: 19.08.2012
Сообщений: 494
Записей в блоге: 1
#1

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

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

Добрый день!

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

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

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

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

Заранее большое спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2014, 16:32     Не прокручивать ListView при добавлении в него данных
Посмотрите здесь:
Android Ошибка при добавлении данных в список
Android Ошибка при добавлении в базу данных
Android Изменение данных в ListView при вводе текста
Android Помощь при добавлении Actionbarsherlock
Android Ошибка Gradle при добавлении Espresso
Android При добавлении AdMob возникают ошибки
TextWatcher. При добавлении в проект вылет Android
Android Расположение кнопки при программном добавлении
Размер фона уменьшается при добавлении кнопки Android
RecyclerView прокручивает в начало при добавлении элементов Android
Сдвиг элементов layout при добавлении нового элемента Android
Добавление данных в ListView Android

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

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

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

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

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

Добавлено через 30 секунд
В конце концов это вы программист, а не я ))
Ответ Создать тему
Опции темы

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