0

Wenn ich eine FragmentStatePagerAdapter mit vielen Fragment s wie folgt aus:Muss ich Ansichten in 'onDestroyView() `für Fragmente setzen, wenn sie in einem ViewPager verwendet werden?

public class MyFragment extends Fragment { 
    View myView; 

    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState { 
     myView = view.findViewById(R.id.my_view); 
    } 
} 

Jetzt nehme ich auf eine andere Seite blättern ... dies die zerstörten Blick auf andere Seiten austritt, die außerhalb des Bildschirms sind (Weil ich ein Verweis auf sie - myView s)?

Hat tut diese Hilfe:

@Override 
public void onDestroyView() { 
    myView = null; 
} 

Antwort

4

Keine Notwendigkeit. FragmentStatePagerAdapter kümmert sich darum, das Fragment automatisch zu zerstören. Da sich die myView-Referenz innerhalb des Fragments befindet und nicht statisch ist, wird sie ebenfalls zerstört.

FragmentStatePagerAdapter doc:

https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html

Wenn Seiten für den Benutzer nicht sichtbar sind, kann ihr gesamtes Fragment zerstört wird, nur den gespeicherten Zustand dieses Fragments zu halten

Be bewusst, dass dies 3 Fragmente (wenn verfügbar) im Speicher hält, ohne zu zerstören, standardmäßig. Dasjenige, das gerade auf dem Bildschirm angezeigt wird, das linke und das rechte zum aktuellen Fragment. Sie können diese Anzahl jedoch anpassen.

Verwandte Themen