私はonEditorActionListenerを設定したEditTextを持っています。つまり、ユーザーがテキストを入力してEnter/Searchを押すと、詳細が取得され、リサイクルビューが表示されます。私は、次のコードを書いている設定変更に状態を保存するために、今すぐRecyclerViewで、レイアウトマネージャを使用してスクロール位置を復元できない
-
Parcelable stateList;
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//Saving instance of the state in Parcelable stateList
stateList = recyclerView.getLayoutManager().onSaveInstanceState();
outState.putParcelable(RETAIN_STATE, stateList);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if(savedInstanceState!=null) {
stateList = savedInstanceState.getParcelable(RETAIN_STATE);
recyclerView.getLayoutManager().onRestoreInstanceState(stateList);
}
}
しかし、私はこれを実行し、リサイクル業者ビューはstateListから状態を復元しません画面を回転パーセルブル。
私はMVPを使用していますので、プレゼンターのコールバックにアダプタを設定しています。
私は、画面が回転した後にキーボードのEnter/Searchをクリックすると状態を保持することができたので、onRestoreInstanceState()でこのハックを試みましたが、より良い方法があるはずですこの。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if(savedInstanceState!=null) {
//The hack!
et_search.onEditorAction(EditorInfo.IME_ACTION_SEARCH);
stateList = savedInstanceState.getParcelable(RETAIN_STATE);
recyclerView.getLayoutManager().onRestoreInstanceState(stateList);
}
}
詳細情報が必要な場合は教えてください。 ありがとうございます。
はい、私は、ビューのスクロール位置を復元するために探しています。 – hsm59