Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
SausageFlat
 Аватар для Striker
242 / 221 / 154
Регистрация: 19.08.2012
Сообщений: 499
Записей в блоге: 1

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

29.08.2014, 16:32. Показов 2355. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день!

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

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

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

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

Заранее большое спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2014, 16:32
Ответы с готовыми решениями:

Пропадает изображение в richTextBox при добавлении в него новых данных
Добрый вечер. Идея проекта - чат со смайликами. Проблема в следующем: при добавлении изображения в richTextBox оно там появляется, но,...

Binding к ListView при добавлении информации
Всем добрый вечер! Пытаюсь сделать bindig к listview при добавлении объектов на форме. Сделал класс, сделал коллекцию. Подскажите...

Дублирование столбцов в listview при добавлении строчки
У меня сейчас лопнет голова!!! Помогите пожалуйста! Как сохранить listview в xml я нашла, успешно сохраняется и загружается первая...

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

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

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

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

Добавлено через 30 секунд
В конце концов это вы программист, а не я ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.08.2014, 00:17
Помогаю со студенческими работами здесь

C++ Win32 api ListView при добавлении строки
Добрый день! Подскажите в чем проблема. При заполнении ListView получается смещение записей. Например ввожу три раза разные данные 1....

Подергивание ListView в режиме VirtualMode при добавлении элемента
Здравствуйте. Для начала стоит заметить, что более забагованного контрола в винформах встречать не приходилось. Причем одни и те же...

Не отображает элементы ListView-а при добавлении туда файлов
Здравствуйте! Я создал две формы. В обоих есть ListView. Первая из них - главная - должна послужить файловым контейнером, элементы...

Непонятная ошибка (разрушительный сбой) при добавлении в ListView
хочу изменить содержание элемента по индексу в listview но выводит ошибку wtf?? изза чего это???

Почему при добавлении строки в listview запускается посторонняя функция?
После listView1.Items.Add(tb.Text) Сразу запускается код public class ListViewSorter : System.Collections.IComparer { ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru