起初我觉得 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