回転後に、フラグメントを保持せずに結果のリストを復元する方法があるのだろうかと思います。RecyclerViewは、アイテムを復元し、回転後に改ページを管理します
私は基本的に、プレゼンターからいくつかのAPIを呼び出すフラグメントを持っています(RxJavaとRetrofitを使用しています)。私はページングを追加して、より多くのデータをスクロールダウンする必要があるときにのみ電話をかけることができます。
私は次のシナリオにいる: - 私は、Web から2番目のページを呼び出すためにダウンリストをスクロール - 私は私が必要だろうか。この場合、画面
を回転させるには、すべて表示することですアイテムを1ページ目から2ページ目までドラッグし、正しい位置にスクロールします(このために、LayoutManagerのonSaveInstanceStateを使用できます)。
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FwApplication.component(getActivity()).inject(this);
if (savedInstanceState != null) {
mRxRunning = savedInstanceState.getBoolean(EXTRA_RX);
mQuery = savedInstanceState.getString(QUERY_ARG);
mCurrentPage = savedInstanceState.getInt(CURRENT_PAGE);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString(QUERY_ARG, mQuery);
outState.putInt(CURRENT_PAGE, mCurrentPage);
outState.putParcelable(LAYOUT_STATE, mRecyclerView.getLayoutManager().onSaveInstanceState());
super.onSaveInstanceState(outState);
}
@Override
public void onResume() {
super.onResume();
mPresenter.onResume(mRxRunning, mCurrentPage);
}
setRetainInstanceを呼び出さずにアイテムを保存する方法はありますか?さらに、私はすべてのアイテムを元に戻すためにAPIを呼び出すことを避けるだろう。
アイテムはPOJOですので、単純な文字列のリストにはなりません。
(特別姿勢変化に)このようなイベントでの活動の再起動を防ぐことができますだけonSavedInstanceStateにバンドルに入れアイテムと同じことを行うと、それらを取得しますonCreate。 – aminner
問題は、単純な文字列のリストではなく、作成したオブジェクトのリストです。私は私の質問を編集しました。したがって、onSaveInstanceStateはParcelableオブジェクトのみをサポートします – user1341300
実際には、私はParcelableクラスを拡張して何が起こるかを確認しようとしています – user1341300