Я знаю, что на это был дан ответ, и вы ответили, и это было больше года назад. Но лучший способ сделать это - режим транскрипции. Для демонстрации см. Демонстрацию Android API в разделе «Виды»> «Списки»> «Стенограмма».
Вы должны установить следующее в своем виде списка в XML.
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
Он всегда будет работать, когда вы позвоните notifyDataSetChanged()
. Вы можете установить android:transcriptMode
на normal
, вместо этого, если вы хотите получить еще лучший результат для приложений чата: он будет прокручиваться до нижней части только в том случае, если последний элемент уже был в поле зрения. Таким образом, пользователи могут просматривать предыдущий чат без перерыва, когда другие пользователи чат.
это отлично работает. Я попробовал 'android: stackFromBottom =" true "' раньше, и проблема в том, что если бы в моем списке было только один элемент, это будет нижней частью экрана. Спасибо – philipp
Примечание: если высота последнего элемента больше высоты списка, верхняя часть последнего элемента будет выровнена между верхней частью списка, т. Е. Нижняя часть элемента не будет видимой. Вот почему решение stackFromBottom описано Ribose лучше для чат-подобных функций. –
Работал как шарм! Я также попробовал stackFromBottom = "true", но поскольку я не очищал список, он не работал для моей ситуации. (По крайней мере, я думаю, именно поэтому.) – BostonGeorge