2012-02-15 2 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

감사 답변을 많이. 질문에 대해서는 언급하는 것을 잊어 버렸지 만 응용 프로그램에서 API 7을 사용하고 있기 때문에'smoothScrollToPosition'을 사용할 수 없습니다 ... ( –

+1

그러면'setSelection()'이 붙어 있습니다. –

+0

함께 시도 할 것입니다 감사합니다 –

관련 문제