我正在构建一个聊天室应用程序,每隔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并不真正选择该项目,只是滚动到它。
热潮!就是这样。我错过了这个方法。谢谢! – Konklone 2009-10-12 01:07:45