2013-11-15 157 views
2

我有看起來很簡單的ListView問題。android listview requestFocusFromTouch setSelection smoothScrollToPosition似乎被忽略

我用它在一個非常經典的方式:

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

當使用這個首次,ListView控件是未suprising頂部。但是,當我清除適配器並提供新數據時,它將保留先前選擇的位置。但我想再次將列表滾動到頂部。

我想:

listView.setSelection(0); 

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

listView.smoothScrollToPosition(0); 

一切似乎被忽略。 :(如何強制listView返回到第一個元素

+0

我可以添加什麼,我使用ViewPager(v4)。也許它有一些影響呢? – user2707175

回答

0

當你調用setSelection(0)時,你將0的位置設置爲選中的一個,將滾動設置爲位置0,所以實際上你從位置0滾動到位置0