2011-12-23 71 views
12

画面の向き変更中に、GridViewのスクロール位置(検索結果でいっぱい)を維持する方法はありますか?画面回転によるGridViewのスクロール位置の維持

私は断片内にGridViewを持っています。画面を回転すると、リストの先頭にジャンプします。

風景モードでは、私のGridViewは3つの列を持ちます。ポートレートモードでは、2つの列があります。

フラグメントのGridViewが画面の向きが変わったときのどこにでもスクロールされた状態を維持する方法を理解できないようです。

答えて

18

あなたはこれを試すことができます:最初はあなたが呼び出すことで、GridViewコントロールの現在のスクロール位置を取得する必要があります

int index = gridview.getFirstVisiblePosition(); 

を次にあなたが向きの変更中にこの値を保存しなければならないとのGridViewのときもう一度作成して、グリッドビューをこのインデックスに移動する必要があります。

私はこの仕事ができるとします

gridview.smoothScrollToPosition(int index) 

は、この情報がお役に立てば幸い!

+6

私はそれを見ましたが、私は必要2.1に戻ってサポートするため、smoothScrollToPosition()へのアクセス権がありません。代わりにsetSelection(int position)を使用しています。 getFirstVisiblePosition()は私が必要としていたものです。今私は馬鹿だと感じる!ありがとうございました! –

+0

問題はありません!あなたを助けてくれてうれしい! :) –

+4

私のアプリでは、smoothScrollToPositionは機能しません。しかし、setSelectionはうまく動作します。 – ChangUZ

24

次の方法を使用できます。これはすべてのAndroidバージョンで機能します。現在のスクロール位置を保存するには

int index = gridView.getFirstVisiblePosition(); 

が次に向きの変更後、保存されたインデックスにGridViewの位置を設定するには、次のコードを使用します。

gridView.setSelection(index); 
+4

これはうまくいった!! gridview.smoothScrollToPosition(int index)--->遅延ロードがある場合は機能しません。 – krisDrOid

+0

同じ@krisDrOid – ChangUZ

+0

それは動作します - ありがとう! –

関連する問題