2

Ich habe eine App, die Fragmente verwendet, um Daten anzuzeigen. Die Hauptaktivität, die unten gezeigt wird, kontrolliert die Fragmente mit einer Recycleransicht darin und wenn ich eine Ausrichtung ändere, habe ich, was aussieht, eine Recycleransicht, die eine andere überlappt. Bei jeder Orientierungsänderung wird ein weiteres Fragment erstellt. Wie würde ich das beheben? Jede Hilfe wäre großartigWie höre ich auf, überlappende Fragmente bei einer Orientierungsänderung zu stoppen?

public class MainActivity extends AppCompatActivity 
     implements NotesFragment.OnFragmentInteractionListener, EditFragment.SaveFragmentItem { 

    EditFragment editFrag; 
    NotesFragment notesFrag; 

    FragmentManager fragmentManager; 
    FragmentTransaction fragmentTransaction; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     notesFrag = new NotesFragment(); 
     editFrag = new EditFragment(); 

     fragmentManager = getSupportFragmentManager(); 
     fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.add(R.id.container1, notesFrag); 
     fragmentTransaction.commit(); 

    } 

    .... 
} 

Antwort

1

Ich fand heraus, was los war. Dies war die säumige Codezeile:

fragmentTransaction.add(R.id.container1, notesFrag); 

I die replace() Methode zu verwenden, benötigt wird, um das Fragment nach jeder Orientierungsänderung ersetzt, anstelle der Zugabe eine weitere Instanz des Fragments an das FragmentManager. Einfache Antwort, aber frustrierend;)

+0

Sie können auch die Funktion add und fügen Sie Hintergrundfarbe zu Ihrem XML, so dass das vorherige Layout wird nicht angezeigt –

Verwandte Themen