Android: ListView.getScrollY () – он работает?

Я использую его, но он всегда возвращает 0, хотя я прокручиваю до конца списка.

Solutions Collecting From Web of "Android: ListView.getScrollY () – он работает?"

GetScrollY () на самом деле является методом View, а не ListView. Это относится к количеству прокрутки всего изображения, поэтому оно почти всегда будет 0.

Если вы хотите знать, насколько прокручивается содержимое ListView, вы можете использовать listView.getFirstVisiblePosition ();

Он работает, он возвращает верхнюю часть прокрученной части представления в пикселях от вершины видимого вида. См. Документацию getScrollY () . В основном, если ваш список занимает полный вид, тогда вы всегда получите 0, потому что верхняя часть прокрученной части списка всегда находится в верхней части экрана.

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

public void onCreate(final Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.main); // The list defined as field elswhere this.view = (ListView) findViewById(R.id.searchResults); this.view.setOnScrollListener(new OnScrollListener() { private int priorFirst = -1; @Override public void onScroll(final AbsListView view, final int first, final int visible, final int total) { // detect if last item is visible if (visible < total && (first + visible == total)) { // see if we have more results if (first != priorFirst) { priorFirst = first; //Do stuff here, last item is displayed, end of list reached } } } }); } 

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

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