ListView – сохранить определенный элемент при появлении мягкой клавиатуры

В моем приложении у меня есть активность с ListView в нижней половине дисплея. Над ним есть другие элементы интерфейса, которые можно использовать для добавления элементов в список. Клиент указывает, что он хочет, чтобы вновь добавленные элементы были автоматически прокручены в поле зрения – это прекрасно, и setSelection(position) отлично работает для него. Однако, когда появляется мягкая клавиатура, размер экрана изменяется (у меня есть android:windowSoftInputMode=adjustResize в манифесте), физический размер списка уменьшается, а вновь добавленный элемент больше не отображается.

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