Las filas visibles en recyclerview saltan un poco después de girar de retrato a paisaje

Tengo un problema que estaré agradecido si alguien me ayuda a través. Tengo un RecyclerView que busca los datos del servidor publicando la petición. Cuando la rotación cambia reenvío esa respuesta usando onSaveInstanceState para que no envíe Request de nuevo a menos que requiera loadMore. Pero cuando cambia de retrato a paisaje, las primeras filas saltan adelante en la medida de una lengüeta como la imagen abajo ->

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Se arregla con desplazamiento después.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_list); findViews(); extractDataFromBundle(); init(); setListeners(); if (savedInstanceState != null) { vodOrAod = savedInstanceState.getBoolean("vodOrAod"); if (vodOrAod == true) { vodFilmAbsListOutputStore = savedInstanceState.getParcelable("ResponseVODFilmList"); films.addAll(vodFilmAbsListOutputStore.results); showCaseAdapter.notifyDataSetChanged(); } else { aodTrackAbsListOutputStore = savedInstanceState.getParcelable("ResponseAodTracks"); aodTrackAbses.addAll(aodTrackAbsListOutputStore.results); showCaseAdapter.notifyDataSetChanged(); } startIndex = savedInstanceState.getInt("startIndex"); } else { loadMore(); } } @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); if (tagDet.type.equals(EnumObjectType.VOD_FILM)) { savedInstanceState.putParcelable("ResponseVODFilmList", vodFilmAbsListOutputStore); vodOrAod = true; savedInstanceState.putBoolean("vodOrAod", vodOrAod); } else { savedInstanceState.putParcelable("ResponseAodTracks", aodTrackAbsListOutputStore); vodOrAod = false; savedInstanceState.putBoolean("vodOrAod", vodOrAod); } savedInstanceState.putInt("startIndex", startIndex); } private void loadMore() { if (tagDet.type.equals(EnumObjectType.VOD_FILM)) { progressView.setVisibility(View.VISIBLE); apiRequest.getVODFilmList( new GetListInput( tagDet, startIndex + "", startIndex + Constants.LIMIT + "" ) ); } else { progressView.setVisibility(View.VISIBLE); apiRequest.getAodTracks( new GetListInput( tagDet, startIndex + "", startIndex + Constants.LIMIT + "" ) ); } startIndex += Constants.LIMIT; } private void onFilmListByTagResponse(VODFilmAbsListOutput vodFilmAbsListOutput) { if (vodFilmAbsListOutputStore == null) { vodFilmAbsListOutputStore = vodFilmAbsListOutput; } else { vodFilmAbsListOutputStore.results.addAll(vodFilmAbsListOutput.results); } switch (vodFilmAbsListOutput.status) { case DONE: progressView.setVisibility(View.INVISIBLE); films.addAll(vodFilmAbsListOutput.results); showCaseAdapter.notifyDataSetChanged(); break; } } 

¿Qué debo hacer para solucionar este problema?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.