起初我觉得 ListView 的问题很简单。

我以一种非常经典的方式使用它:

listView = (ListView) view.findViewById(R.id.myid); 
listView.setAdapter(adapter); 
adapter.clear(); 
adapter.addAll(result); 
adapter.notifyDataSetChanged(); 

第一次使用时,listView 位于顶部,这并不奇怪。但是,当我清除适配器并放入新数据时

adapter.clear(); 
adapter.addAll(result); 
adapter.notifyDataSetChanged(); 

它保留先前选择的位置。但我想再次将列表滚动到顶部。

我试过:

listView.setSelection(0); 
 
listView.requestFocusFromTouch(); 
listView.setSelection(0); 
 
listView.smoothScrollToPosition(0); 

一切似乎都被忽略了。 :( 如何强制 listView 返回到第一个元素。

请您参考如下方法:

当你调用 setSelection(0) 时,你将位置 0 的项目设置为选中的项目并滚动到位置 0,所以实际上你是从位置 0 滚动到位置 0


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!