Ответ 1
Попробуйте использовать list.scrollTo(0, list.getHeight());
Хотя это было бы простой задачей, но, видимо, нет возможности прокручивать список вниз. Все найденные решения используют вариации метода setSelection(lastItem)
, который только устанавливает выделение на последний элемент, но не прокручивает его в нижней части.
В моем случае у меня есть пустой список (с длинным пустым представлением), и я хочу прокрутить его до конца.
Итак, есть ли способ сделать это?
Edit:
Итак, для тех, кто заинтересован, рабочее решение:
getListView().setSelectionFromTop(0, -mHeader.getHeight());
и
getListView().scrollTo(mOffset)
Это также работает с правильным смещением (рассчитанным на основе текущей позиции прокрутки), но может дать вам неожиданные результаты.
Попробуйте использовать list.scrollTo(0, list.getHeight());
Если вы хотите, чтобы просмотр списка прокручивался всегда снизу даже при динамическом обновлении списка, вы можете добавить эти атрибуты в виде списка.
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
используйте следующие
lv.setSelection(adapter.getCount() - 1);
Если вы хотите, чтобы анимация прокрутки была программно, вы можете легко прокрутить ее до нижней части списка, используя:
listView.smoothScrollToPosition(adapter.getCount());
прокрутка вверх, большая часть списка может быть достигнута с помощью:
listView.smoothScrollToPosition(0);
Попробуйте это... он решит вашу проблему, я попробовал, и он отлично работает.
listView.post(new Runnable(){
public void run() {
listView.setSelection(listView.getCount() - 1);
}});
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);
}
});
}
Используйте следующие и попробуйте.
listview.setSelection(adapter.getCount() - 1);
Возможно, вы захотите попробовать myListView.smoothScrollToPosition(myListView.getCount() - 1)
. Таким образом, вы не будете вынуждены выбирать последнюю строку. Кроме того, вы получаете гладкую, красивую прокрутку! (
У меня была та же проблема, это лучше всего работает для меня
listView.setSelection(listView.getAdapter().getCount()-1);
если в ListView нет адаптера, тогда у него нет детей вообще, пустой вид не является дочерним элементом вашего ListView