儘量不要整理mainActivity
一旦gridItem
被點擊,所以當用戶導航回mainActivity
(從detailsActivity
),他將擁有所有,這是有之前的數據。
您可以處理這種情況與活動的生命週期回調:
你可以得到當前可見的GridView項目的位置是這樣的:
int mCurrentPosition = gridview.getFirstVisiblePosition();
當取向變化正在發生的活動重新制作並經歷以下幾個階段:
onSaveInstanceState
onRestoreInstanceState
然後,您可以在方向更改發生之前保存位置,並在恢復方向時將其恢復。
保存你的活動狀態
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current scroll state
savedInstanceState.putInt(STATE_POSITION, mCurrentPosition);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
恢復你的活動狀態
public void onRestoreInstanceState(Bundle savedInstanceState) {
// Always call the superclass so it can restore the view hierarchy
super.onRestoreInstanceState(savedInstanceState);
// Restore state members from saved instance
mCurrentPosition = savedInstanceState.getInt(STATE_POSITION);
}
在這裏,一旦你有以前的位置,你可以移動到GridView中所需位置:
gridview.smoothScrollToPosition(int mCurrentPosition)
這從Android電子文檔採取:Recreating an Activity
滾動GridView的定位GridView scrolling stackoverflow
謝謝你的回答。你能告訴我我如何 1.「沒有完成mainActivity一旦gridItem被點擊」? 2.'gridview.getFirstVisiblePosition();'有時會帶來半滾動項目的位置,並且它不能很好地工作...... –
由於我使用了一個片段,我似乎沒有'onRestoreInstanceState'事件。 –
你說得對。檢查下面的[stackoverflow問題](http://stackoverflow.com/questions/5412746/android-fragment-onrestoreinstancestate) –