我有一个带有自定义行的ListView
。当单击这些行中的任何一行时,都会重新生成ListView的数据。当发生这种情况时,我希望列表滚动回到顶部。
我最初尝试在每一行的OnClickListener
中使用setSelection(0)
来实现这一点,但是没有成功(我相信这是因为当ListView
的数据无效时,它就失去了滚动位置--所以我对setSelection的调用被撤消了。不过,我仍然不明白ListView在失效后如何决定滚动到哪里)。
我所知道的唯一有效的解决方案是Romain Guy给出的:http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
它涉及到(View.post
)对_listView.setSelection(0)
的调用。我发现它的性能相当差。新生成的列表显示其滚动位置不变,并且在滚动回顶部之前有相当长的延迟。
有没有更好的方法来实现这个功能?
任何帮助都将不胜感激。
谢谢!
https://stackoverflow.com/questions/2889793
复制相似问题