2012-07-13 80 views
0

我有一个列表视图,哪些项目动态添加到列表的顶部。我显示了列表顶部发生的一些最新事件。问题是,这些事件非常频繁发生,就像每秒发生5次事件。这使得名单下降。假设用户正在查看一个事件,那么当发生新事件时,它会将他正在阅读的事件推到下面,然后消失。我希望将新事件添加到顶部,但只有在他向上滚动时才应显示。一旦发生新事件,我会在适配器上调用notifydatasetchanged并将此列表推下。无论如何,我可以冻结滚动。我试图通过setTranscriptMode禁用滚动。但它似乎没有帮助。请给我一些提示和指向我禁用ListView滚动到顶部

回答

5

你可以做的是尝试使用getFirstVisiblePosition()获得ListView在屏幕上的可见位置,然后再次用setSelection设置适配器的位置。

int position = mListView.getFirstVisiblePosition(); 
mListView.setAdapter(adapter); 
mListView.setSelection(position + 1); 

我想你会需要(位置+ 1),因为你将每个项目添加到列表顶部的项目。