0

Momentan habe ich ein Tab Layout Setup mit 4 Fragmenten. Ich habe ein Fragment, das ursprünglich einen doppelten ID-Fehler bekam, der beim Umschalten zwischen den Fragmenten auftrat. Ich habe es geschafft, das Problem zu lösen, indem ich den folgenden Code unten anwende, aber jetzt bekomme ich eine Inhaltsansicht, die noch nicht erstellt wurde, wenn ich umschalte.Android Inhaltsansicht noch nicht erstellt Fragment

public class contactus2 extends Fragment { 

private static View view; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    if (view != null) { 
     ViewGroup parent = (ViewGroup) view.getParent(); 
     if (parent != null) 
      parent.removeView(view); 
    } 
    try { 
     view = inflater.inflate(R.layout.contactus2, container, false); 
    } catch (InflateException e) { 
     Log.i("Inflate", "View Hidden"); 

    } 
    return view; 
} 

}

+0

Können Sie bitte die tatsächlichen Android-Fehler zur Verfügung stellen. –

Antwort

0

onCreateView() sollte Referenz nie ein statisches View-Objekts. Android zerlegt und rekonstruiert die Ansicht des Fragments beim Durchlaufen der Anwendung. Aus diesem Grund sollten Sie immer eine neue Ansicht in onCreateView aufblasen. Wie Sie es jetzt haben, versucht Ihre App, eine Ansicht für mehrere Fragmente wiederzuverwenden.

Etwas wie folgt aus:

public class contactus2 extends Fragment { 

    private View rootView; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     rootView = inflater.inflate(R.layout.contactus2, container, false); 
     return rootView; 
    } 
} 

Grundsätzlich entfernen Sie die statische Zuordnung zu Ihrer Ansicht Referenz des Fragments.

+0

Ok vielen Dank – james