Подтвердить что ты не робот

Как прокрутить ListView до конца?

Хотя это было бы простой задачей, но, видимо, нет возможности прокручивать список вниз. Все найденные решения используют вариации метода setSelection(lastItem), который только устанавливает выделение на последний элемент, но не прокручивает его в нижней части.

В моем случае у меня есть пустой список (с длинным пустым представлением), и я хочу прокрутить его до конца.

Итак, есть ли способ сделать это?

Edit:

Итак, для тех, кто заинтересован, рабочее решение:

getListView().setSelectionFromTop(0, -mHeader.getHeight());

и

getListView().scrollTo(mOffset)

Это также работает с правильным смещением (рассчитанным на основе текущей позиции прокрутки), но может дать вам неожиданные результаты.

4b9b3361

Ответ 1

Попробуйте использовать list.scrollTo(0, list.getHeight());

Ответ 2

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

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"

Ответ 3

используйте следующие

    lv.setSelection(adapter.getCount() - 1);

Ответ 4

Если вы хотите, чтобы анимация прокрутки была программно, вы можете легко прокрутить ее до нижней части списка, используя:

listView.smoothScrollToPosition(adapter.getCount());

прокрутка вверх, большая часть списка может быть достигнута с помощью:

listView.smoothScrollToPosition(0);

Ответ 5

Попробуйте это... он решит вашу проблему, я попробовал, и он отлично работает.

   listView.post(new Runnable(){
             public void run() {
             listView.setSelection(listView.getCount() - 1);
    }});

Ответ 6

private void scrollMyListViewToBottom() {
    myListView.post(new Runnable() {
        @Override
        public void run() {
            // Select the last row so it will scroll into view...
            myListView.setSelection(myListAdapter.getCount() - 1);
        }
    });
}

Его работа для меня

Ответ 7

Используйте следующие и попробуйте.

listview.setSelection(adapter.getCount() - 1);

Ответ 8

Возможно, вы захотите попробовать myListView.smoothScrollToPosition(myListView.getCount() - 1). Таким образом, вы не будете вынуждены выбирать последнюю строку. Кроме того, вы получаете гладкую, красивую прокрутку! (

Ответ 9

У меня была та же проблема, это лучше всего работает для меня

listView.setSelection(listView.getAdapter().getCount()-1);

Ответ 10

если в ListView нет адаптера, тогда у него нет детей вообще, пустой вид не является дочерним элементом вашего ListView