Intereting Posts
Как отключить панель состояния / панель уведомлений на андроиде программно? Белые лейблы Android и приложений IOS Переопределить кнопку «домой» и «назад» – это случай, когда логическое значение true Как передать значения между действиями на Android? Регистрация проводки HttpURLConnection в Android Приложение получает неправильное местоположение до открытия встроенного приложения Google Map Как запустить код в потоке пользовательского интерфейса в тесте Android JUnit без Activity? NDK, объединяющий несколько библиотек Android Studio 5.2 – обновление не выполнено. Причина: com.google.common.collect.Maps Установите Android Theme.Light для диалога оповещений Android WebView VS Phone Browser Android – Принудительная локаль, сбрасываемая при изменении ориентации Как получить все файлы из папки с ресурсами Как сохранить onItemSelected от стрельбы по вновь созданной Spinner? Каков правильный способ проверки доступных токенов OAuth на сервере node.js?

ListView не прокручивается до конца, когда клавиатура использует

Мой ListView должен автоматически прокручиваться до конца, когда новое сообщение получено или отправлено. Но когда я использую клавиатуру Android для отправки сообщения из EditText ниже ListView, изменяется размер списка ListView, и новое сообщение, которое я хочу отправить, появляется вне экрана, и мне нужно прокрутить вниз, чтобы увидеть его, даже если клавиатура исчезнет, ​​а ListView снова изменится.

Чтобы прокрутить ListView, я использую:

  ListView.postDelayed (новый Runnable () { 
@Override Public void run () { listView.setSelection (listView.getCount ()); } }, 100);

Но в моем случае не работает правильно.

Кто-нибудь знает, почему это может произойти? Есть ли способ, который ВСЕГДА прокручивает ListView до конца?

Спасибо, ваша помощь очень ценится!

Solutions Collecting From Web of "ListView не прокручивается до конца, когда клавиатура использует"

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

listView.smoothScrollToPosition(listView.getCount()); 

Получающий код должен выглядеть так:

 listView.postDelayed(new Runnable() { @Override public void run() { listView.setSelection(listView.getCount()); listView.smoothScrollToPosition(listView.getCount()); } }, 100); 

Попробуйте этот код вашего кода:

 listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 

(Или установить его по XML-макету).

Установите android: windowSoftInputMode в манифесте для действия для adjustPan|adjustResize .