0

回転後に、フラグメントを保持せずに結果のリストを復元する方法があるのだろうかと思います。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ですので、単純な文字列のリストにはなりません。

+0

(特別姿勢変化に)このようなイベントでの活動の再起動を防ぐことができますだけonSavedInstanceStateにバンドルに入れアイテムと同じことを行うと、それらを取得しますonCreate。 – aminner

+0

問題は、単純な文字列のリストではなく、作成したオブジェクトのリストです。私は私の質問を編集しました。したがって、onSaveInstanceStateはParcelableオブジェクトのみをサポートします – user1341300

+0

実際には、私はParcelableクラスを拡張して何が起こるかを確認しようとしています – user1341300

答えて

-1

マニフェストファイルを編集してみます。活動をブロックするには、この行を追加します。

android:configChanges="keyboardHidden|orientation|screenSize"> 

それは

関連する問題