Ich habe ein Layout mit zwei Fenstern mit meinen Tasten auf der linken Seite. Wenn eine Schaltfläche gedrückt wird, wird das entsprechende Fragment rechts angezeigt. Manchmal überlappen sich die Fragmente, aber das ist ein zeitweiliges Problem. Ich kann es nicht replizieren die ganze Zeit, aber es passiertFragment überschneidet sich manchmal beim Wechseln von Tabs
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageButtonSettingsManageBooks:
SettingsManageBooksFragment mbFragment = new SettingsManageBooksFragment();
getFragmentManager().beginTransaction().replace(R.id.setting_detail_container2, mbFragment).addToBackStack(null).commit();
mImgFragmentTitle.setImageResource(R.drawable.manage_my_books);
this.getSupportFragmentManager().executePendingTransactions();
break;
case R.id.imageButtonSettingsPurchaseHistory:
SettingsPurchaseHistoryFragment phFragment = new SettingsPurchaseHistoryFragment();
getFragmentManager().beginTransaction().replace(R.id.setting_detail_container2, phFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.purchase_history);
this.getSupportFragmentManager().executePendingTransactions();
break;
case R.id.imageButtonSettingsAudio:
SettingsAudioFragment aFragment = new SettingsAudioFragment();
getFragmentManager().beginTransaction().replace(R.id.setting_detail_container2, aFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.audio);
this.getSupportFragmentManager().executePendingTransactions();
break;
case R.id.imageButtonSettingsRestore:
SettingsRestoreFragment rFragment = new SettingsRestoreFragment();
getFragmentManager().beginTransaction().replace(R.id.setting_detail_container2, rFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.restore);
this.getSupportFragmentManager().executePendingTransactions();
break;
case R.id.imageButtonSettingsCopyright:
SettingsCopyrightFragment cFragment = new SettingsCopyrightFragment();
getFragmentManager().beginTransaction().replace(R.id.setting_detail_container2, cFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.copyright);
this.getSupportFragmentManager().executePendingTransactions();
break;
case R.id.imageButtonSettingsAbout:
SettingsAboutFragment abFragment = new SettingsAboutFragment();
getFragmentManager().beginTransaction().replace(R.id.setting_detail_container2, abFragment).commit();
mImgFragmentTitle.setImageResource(R.drawable.about);
this.getSupportFragmentManager().executePendingTransactions();
break;
Es sieht aus wie, weil ich jedes Fragment mit einem neuen Fragment am ersetzt, der die Überlappung verursachen könnte. Gibt es eine Möglichkeit, alle Fragmente zu löschen, bevor Sie eine neue beginnen?
Ich bekomme das gleiche Problem, (immer mit Ersetzen auch), aber ich benutze die Support-Bibliothek. Bearbeiten: Es scheint, als ob Sie auch sind, aber Sie rufen getFragmentManager anstelle von getSupportFragmentManager ... könnte das Ihr Problem sein? Wie bei mir ist es ein sehr zeitweiliges Problem, das wir nicht reproduzieren können. – StackOverflowed
Es würde mich nicht erlauben, meinen vorherigen Kommentar zu bearbeiten, aber Edit 2: Wenn es darauf ankommt, ist das Samsung Galaxy S4 das Gerät, auf dem wir es gesehen haben. – StackOverflowed
Ich denke, wir haben die andere Lösung besser als "Lösung entfernen" mit diesem Weg. In 'alle Ihre XML-Dateien', sollte die Hintergrundfarbe dafür definieren, es wird das Problem lösen: Fügen Sie diese 'android: background =" @ android: color/black "in das von Ihnen definierte View-Tag. –