我有一个带自定义行的 ListView
。当任何一行被点击时,ListView
的数据会重新生成。我希望在这种情况下列表可以回滚到顶部。
最初我尝试在每个行的OnClickListener
中使用 setSelection(0)
来实现这一点,但是没有成功(我认为是因为当其数据失效时,ListView
失去了滚动的位置 - 所以我的调用被撤消了。我仍然不理解 ListView
在失效后如何决定滚动到哪里)。
我所知道的唯一有效的解决方案是由 Romain Guy 在这里提供的:http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
它涉及 (View.post
) 调用 _listView.setSelection(0)
。我发现这表现得相当糟糕。新生成的列表显示出来时滚动位置没有改变,在回滚到顶部前会有相当大的延迟。
有更好的方法来实现这个功能吗?
非常感谢您的帮助。
谢谢!