-1

Hallo Ich benutze RecyclerView mit GridLayoutManager, um Bilder zu laden, aber seine scrollToPositionWithOffset() Methode funktioniert nicht.Recyclerview GridLayoutManager scrollToPositionWithOffset funktioniert nicht

Ich habe Recyclerview erste sichtbare Position Position in OnSavedInstanceState() gespeichert und ich erhalte seinen Wert in OnViewStateRestored() und ich bekomme immer die richtigen Positionen, aber RecyclerView scrollt nicht zur gewünschten Position.Ich überprüfe das durch Drehen meines Bildschirms aber es wird nicht in die gewünschte Position gerollt.

Hier ist mein Code:

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt("position", ((GridLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition()); 
} 

@Override 
public void onViewStateRestored(@Nullable Bundle savedInstanceState) { 
    super.onViewStateRestored(savedInstanceState); 
    if (savedInstanceState != null) { 
     int state = savedInstanceState.getInt("position"); 
     ((GridLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(state, 20); 
    } 
} 
+0

nur recyclerviewObject.scrollToPosition verwenden (state); –

+0

Danke !! funktioniert aber nicht :( –

+0

was passiert gerade? –

Antwort

0

Verwenden smoothScrollToPosition() statt scrollToPositionWithOffset()

Try this:

@Override 
public void onViewStateRestored(@Nullable Bundle savedInstanceState) { 
    super.onViewStateRestored(savedInstanceState); 
    if (savedInstanceState != null) { 
     int state = savedInstanceState.getInt("position"); 
     recyclerView.smoothScrollToPosition(state); 
    } 
} 
Verwandte Themen