Обновление ListView заняло верхнюю часть списка - PullRequest
0 голосов
/ 19 декабря 2011

Сценарий: я использую список с пользовательским адаптером. Я получаю данные каждые 5 секунд, а затем отображаю их в виде списка.

Проблема: после каждого обновления список прокручивается вверху. Я бы хотел, чтобы список оставался как есть с точки зрения прокрутки и обновлялись только базовые данные.

Текущий код: вызывается каждый раз, когда я получаю новые данные.

mListAdapter = new CustomListAdapter(this, mListData);
mList.setAdapter(mListAdapter);

Ответы [ 5 ]

1 голос
/ 19 декабря 2011

Когда вы получаете новые mListData, просто аннулируйте адаптер, а не повторно инициализируйте адаптер, который вы можете вызвать следующим образом

mListAdapter.notifyDataSetChanged();
1 голос
/ 19 декабря 2011

Вместо вашего кода, пожалуйста, старайтесь ставить каждый раз, когда вы извлекаете данные:

adapter.notifyDataSetChanged();
1 голос
/ 19 декабря 2011

Вместо того, чтобы вызывать это, вы должны установить новые данные для адаптера, а затем вызвать notifyDataSetChanged.

Надеюсь, это поможет!

0 голосов
/ 07 января 2015

Это сработало для меня:

adapter.setData(list);
adapter.notifyDataSetChanged();
0 голосов
/ 19 декабря 2011

Вы можете использовать

mList.setSelection(mListData.size() - CONSTANT.CONTENT_SIZE);

Таким образом, просмотр списка не будет обновляться до самого верха. Или вы также можете использовать

adapter.notifydatasetchanged

путем обновления связанного списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...