У меня есть ListView
для моего чата. Когда приходит новое сообщение, мне нужно прокрутить этот список вниз автоматически. Я сделал это с помощьюКак сделать Listview с нормальным режимом транскрипции прокручивается плавно?
chatView.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_NORMAL);
Все работает как шарм, но я хочу перечислить прокручивать вниз гладко, как с smoothScrollBy()
методом. Теперь он просто прыгает до конца, когда вызывается notifyDataSetChanger()
.
Как я могу это достичь? Вот мой ListView XML элемент, на всякий случай:
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stackFromBottom="true"
android:clipToPadding="false"
android:divider="@null" android:dividerHeight="4dp"
android:id="@+id/chat"
android:layout_weight="1"
android:background="@color/background_green"
android:paddingBottom="@dimen/between_elements_spacing"/>
Неправильно. В режиме транскрипции listview, настроенном на «AbsListView.TRANSCRIPT_MODE_NORMAL», он будет автоматически прокручивать его. От разработчиков Android: «TRANSCRIPT_MODE_NORMAL: список будет автоматически прокручиваться донизу, когда будет получено уведомление об изменении набора данных, и только если последний элемент уже отображается на экране». (http://goo.gl/IH9W0B) И нет, если я делаю то, что вы говорите, после того, как каждый набор данных изменил уведомление - он все еще теперь прокручивается плавно из-за режима транскрипции. – udenfox
* Это все еще НЕ прокрутка гладкая, я имел в виду. – udenfox
Плавный прокрутка в позицию полезен, только если список не переместится на новый элемент, который будет в режиме транскрипции нормальным и всегда будет прокручиваться. –