Я потратил несколько часов, пытаясь сделать то же самое. По сути, это действует как приложение чата, где пользователь прокручивает вверх, чтобы просмотреть старые сообщения в верхней части списка.
Проблема в том, что вы хотите динамически добавить еще 50 или 100
записи наверх, но прокрутка должна быть непрерывной, откуда
добавленные элементы были добавлены.
В тот момент, когда вы делаете notifyDataSetChanged
, ListView автоматически позиционирует себя на первом элементе в вашем наборе данных, а НЕ на позиции, которая предшествовала позиции, в которую были вставлены новые элементы.
Похоже, ваш список только что перепрыгнул 50 или 100 записей. Я считаю, что TranscriptMode, установленный на normal, не является решением . Представление списка должно функционировать как обычное представление списка, и вам необходимо программно прокрутить до конца списка, чтобы имитировать TranscriptMode, поскольку он функционирует в «нормальном» режиме.