Fragmento se superpone a veces al cambiar las pestañas

Tengo un diseño de dos paneles con mis botones a la izquierda. Cuando se pulsa un botón, se muestra su fragmento correspondiente a la derecha. A veces los fragmentos se superponen, pero esto es una cuestión intermitente. No puedo replicar todo el tiempo, pero sucede

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; 

Parece que estoy reemplazando cada fragmento con un nuevo fragmento que podría estar causando la superposición. ¿Hay alguna manera de borrar todos los fragmentos antes de comprometer uno nuevo?

Como se mencionó anteriormente por StackOverflowed esto es un problema intermitente. He encontrado una manera de arreglar esto escribiendo mi propio código para eliminar cualquier fragmento existente antes de comprometer uno nuevo. A continuación se muestra mi código:

  fragmentManager = getFragmentManager(); ft = fragmentManager.beginTransaction(); mbFragment = new SettingsManageBooksFragment(); ft.replace(R.id.setting_detail_container2, mbFragment).commit(); mImgFragmentTitle.setImageResource(R.drawable.manage_my_books); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.imageButtonSettingsManageBooks: if (mPurchaseHistory == true) { ft.remove(phFragment); Log.d(TAG, "REMOVING PURCHASE HISTORY FRAG"); } else if (mAudio == true) { ft.remove(aFragment); Log.d(TAG, "REMOVING AUDIO FRAG"); } else if (mRestore == true) { ft.remove(rFragment); Log.d(TAG, "REMOVING RESTORE FRAG"); } else if (mCopyright == true) { ft.remove(cFragment); Log.d(TAG, "REMOVING COPYRIGHT FRAG"); } else if (mAbout == true) { ft.remove(abFragment); Log.d(TAG, "REMOVING ABOUT FRAG"); } ft = fragmentManager.beginTransaction(); mbFragment = new SettingsManageBooksFragment(); ft.replace(R.id.setting_detail_container2, mbFragment).commit(); mImgFragmentTitle.setImageResource(R.drawable.manage_my_books); mManageBooks = true; mPurchaseHistory = false; mAudio = false; mRestore = false; mCopyright = false; mAbout = false; break; 
  • El ERROR sobre DrawerLayout (IllegalArgumentException: Ver android.widget.RelativeLayout no es un cajón deslizante)
  • La actividad con fragmentos no cambia de tamaño cuando se abre el teclado
  • Manejar la tecla de retroceso cuando el último fragmento se disparó
  • ¿Cuál es la forma correcta de implementar Fragments en MvvmCross 3.5.1
  • Error de Android: no se puede realizar esta operación porque se ha cerrado el grupo de conexiones
  • ¿Cómo puedo establecer una etiqueta para fragmentos de viewpager?
  • SetOnClickListener (nuevo OnClickListener () no funciona en Fragment
  • Transición del fragmento Android con elemento compartido
  • Agregar botones a PreferenceFragment
  • ¿Cómo puedo manejar el cambio de orientación para que Fragmento no se cargue?
  • Android: Cambiar los elementos del menú ActionBar del fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.