2016-06-27 17 views
1

画面の回転後にRecyclerViewを縦書きから横書きにリロードしないようにしたい。私は、アダプタからのリストを保存し、onActivityCreated画面の回転後にrecyclerviewをリロードしない

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    if(mAdapter != null) { 
     outState.putParcelableArrayList("key", mAdapter.getOriginalList()); 
    } 
} 

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if(savedInstanceState != null) { 
     mList = savedInstanceState.getParcelableArrayList("key"); 
     mAdapter.notifyDataSetChanged(); 
    } 

} 

の内側にそれを復元するonSaveInstanceStateを使用しています。しかし、問題がある

は、RecyclerViewは、各画面の回転の後に再構築されます。なにが問題ですか ?

+0

あなたはのmanifest.xmlファイルにあなたの活動に線の下に追加していましたか? android:configChanges = "orientation | screenSize | keyboardHidden" – Vickyexpert

+0

@Vickyexpert他にも問題があります。私は風景と肖像画のレイアウトが2種類あり、この行は横長レイアウトが無効になっています。 – VLeonovs

+0

@VLenovos、OKこれで、プログラマティックに変更された設定でアダプタを設定する必要があります。 – Vickyexpert

答えて

0

プログラマティックに変更された設定でアダプタを設定する必要があります。リロードせずにデータを設定することができます。

以下のようなもの、

public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig);     
     setContentView(R.layout.main); 

     if(mAdapter != null) 
       your_recycle_view.setAdapter(mAdapter); 

    } 
+0

コードスニペットで回答を投稿してください – VLeonovs

関連する問題