android ListView requestFocusFromTouch setSelection smoothScrollToPosition似乎被忽略了

时间:2013-11-15 13:26:27

标签: java android listview android-listview

我首先看起来很简单的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返回第一个元素。

1 个答案:

答案 0 :(得分:0)

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