我首先看起来很简单的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返回第一个元素。
答案 0 :(得分:0)
当你调用setSelection(0)时,你将0位置的项目设置为选中的项目并滚动到位置0,所以实际上你从位置0滚动到位置0