2012-02-15 84 views
0

我已经在Android上一个GridView我用自定义图像填充。当用户点击图像时,它会转到不同的活动。这工作完美。的Android GridView控件滚动到顶部的项目点击

我想解决的唯一的事情是,每当用户作出选择时,GridView向后滚动到顶部。我想保持原来的位置,所以当用户使用GridView返回活动时,它会显示最后一个滚动位置。

可能吗?

我试图把一个监听器上滚动事件,但很明显,最后捕获事件是滚动到顶部,所以我不能用它来移动回到了它应该是滚动。

在此先感谢!

更新:忘了提,很重要的一点。我坚持使用API​​ 7.所以我没有smoothScrollToPosition

回答

5

尝试类似如下:

private int _savedGridPosition = 0; 
private GridView _gridView; 

... 

@Override 
protected void onSaveInstanceState (Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt("grid_position", _gridView.getFirstVisiblePosition()); 
} 

@Override 
protected void onRestoreInstanceState (Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    if(savedInstanceState != null && savedInstanceState.containsKey("grid_position")) { 
     _savedGridPosition = savedInstanceState.getInt("grid_position"); 
    } 
} 

@Override 
protected void onResume() { 
    _gridView.smoothScrollToPosition(_savedGridPosition); 
} 

@Override void onPause() { 
    // set in onPause() too since onRestoreInstanceState() is only 
    // called when the Activity is destroyed and recreated. 
    _savedGridPosition = _gridView.getFirstVisiblePosition(); 
} 
+0

感谢很多答案。我忘了提及它的问题,但我不能用'smoothScrollToPosition'因为我坚持我的应用程序API 7 ... :( – 2012-02-15 14:29:11

+1

你坚持'为setSelection()'然后。 – 2012-02-15 14:31:03

+0

会尝试与'setSelection'。谢谢! – 2012-02-15 14:32:56