私は、SOの で有名なポストに通っていましたが、私を助けません。方向:フラグメント内にあるListViewの位置を復元する
私は方向を変更した場合、私はsaveInstanceバンドルが私の位置を保存することを希望、フラグメント内のListViewコントロールを持っています。 私は
private static final String LIST_STATE = "listState";
private Parcelable mListState = null;
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mListState = listView.onSaveInstanceState();
outState.putParcelable(LIST_STATE, mListState);
}
を持っていると私は、次のコード
if(savedInstanceState!=null) {
mListState = savedInstanceState.getParcelable(LIST_STATE);
listView.onRestoreInstanceState(mListState);
OnCreateViewまたはonActivityCreated内のすべての時に復元されていないリストのアップ位置を置けば問題ありません。私は簡単にデバッグがバンドル内の位置を認識することがバンドル内のデバッグからわかる 、
AbsListView.SavedState {3d7562e0 selectedId = -9223372036854775808 firstId = 25 viewTop = -38位置= 5高さ= 717フィルタ= NULL にcheckState = NULL}
私もすべての値の代わりに、バンドルから単離された方法でこの位置を抽出するために試みたが、成功しませんでした。フラグメント
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
ご関心をどうもありがとうございましたが、私はsetRetainInstance(true)を呼び出す場合、私は回転を変更した場合、リストビューが消え – trocchietto