Я создаю приложение в чат-комнате, где новые события проходят опрос за каждые X секунд. Каждый раз, когда это происходит, этот код обновляет RoomAdapter (пользовательский подкласс ArrayAdapter) с новыми данными и прокручивается на дно:Обнаружение положения прокрутки внутри ListView (или ScrollView)
RoomAdapter adapter = (RoomAdapter) getListAdapter();
for (int i=0; i<newEvents.size(); i++)
adapter.add(newEvents.get(i));
getListView().setSelection(events.size()-1);
Это нормально, за исключением того, что если пользователь прокручивает вверх, чтобы взглянуть на история комнаты, она собирается подпрыгнуть на дно, когда произойдет опрос. Я хотел бы сделать так, чтобы, если пользователь уже находится в нижней части списка, он остается там после опроса для новых событий. Если пользователь намеренно прокручивается вверх, я бы хотел, чтобы пользователь не беспокоился.
Как определить, когда я уже прокручивается в нижней части списка ListView?
Примечание: Я не могу получить getListView(). GetSelectedItemPosition(), потому что as the docs note, вызывая setSelection, когда в режиме касания фактически не выбирает элемент, просто прокручивается к нему.
Boom! Вот и все. Я пропустил этот метод. Спасибо! – Konklone