0

AndroidにGridViewがあり、カスタム画像を入力しています。ユーザーが画像をクリックすると、別のアクティビティに移動します。これは完全に機能します。

私が修正したい唯一のことは、ユーザーが選択を行うたびに、GridViewが上にスクロールして戻ることです。同じ位置にとどまりたいので、ユーザーがGridViewを使用してアクティビティに戻ると、最後のスクロール位置が表示されます。

出来ますか?

リスナーをスクロールイベントに配置しようとしましたが、明らかに、最後にキャプチャされたイベントは一番上へのスクロールであるため、それを使用して本来のスクロールに戻ることはできません。

前もって感謝します!

更新:非常に重要な点について言及するのを忘れました。私はAPI7で立ち往生しています。したがって、私は持っていませんsmoothScrollToPosition

4

1 に答える 1

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();
}
于 2012-02-15T14:27:22.527 に答える