ActionBarActivity botón de retroceso no estallar de backstack

Estoy usando esta plantilla https://github.com/kanytu/android-material-drawer-template sólo para probar el material design por lo que he implementado algunos fragmentos algunos tienen webviews algunos no.

Mi problema es cuando el cambio entre los fragmentos puedo ver que se han añadido con éxito a la backstack

 getFragmentManager().beginTransaction().replace(R.id.container, new FAQ()).addToBackStack("FAQ").commit(); 

Pero cuando presiono el botón de nuevo sólo cierra la aplicación.

Cuando lo cambio para usar la Activity vez de ActionBarActivity la navegación trabaja muy bien pero pierdo alguna otra funcionalidad.

Hay una anulación en el botón de retroceso

 @Override public void onBackPressed() { if (mNavigationDrawerFragment.isDrawerOpen()) mNavigationDrawerFragment.closeDrawer(); else super.onBackPressed(); } 

Pero incluso si eso se quita todavía sucede. Creo que el problema se encuentra en algún lugar en el super.onBackPressed

¿Hay alguna razón ActionBarActivity rompería el botón de la parte posterior?

Hace poco leí un post sobre esto, lo siento, no puedo encontrarlo más … Pero básicamente, explicó que la función principal del botón Volver es terminar la Activity actual.

De hecho, de acuerdo con la documentación oficial de onBackPressed() :

Se llama cuando la actividad ha detectado la pulsación del usuario de la tecla de retroceso. La implementación predeterminada simplemente termina la actividad actual, pero puede anularla para hacer lo que quiera.

Y parece que a pesar de que el botón de retroceso utilizado para pop el backstack antes de 5.0, Google habría cambiado este comportamiento con la nueva ActionBarActivity .

Por mi parte, he usado un workarround que funciona para mí, pero que podría no funcionar para todos, dependiendo de su aplicación de navegación.

Pero en caso de que podría ser útil para alguien, aquí está:

 @Override public void onBackPressed() { if (mDrawerLayout.isDrawerOpen()) { mDrawerLayout.closeDrawer(); } else if (getFragmentManager().getBackStackEntryCount() > 0) { getFragmentManager().popBackStack(); } else { super.onBackPressed(); } } 

De esta manera, ActionBarActivity.onBackPressed() sólo se llama cuando la backstack está vacía, en cuyo caso destruye ActionBarActivity .

Usted debe comprobar "getFragmentManager" y "getSupportFragmentManager" se corresponde con su actividad y actionbaractivity o no.

Porque, en Actividad:

 public void onBackPressed() { if (!mFragments.popBackStackImmediate()) { finish(); } } 

En FragmentActivity:

 public void onBackPressed() { if (!mFragments.popBackStackImmediate()) { finish(); } } 

Podemos ver el mismo código que ya maneja backstatck fragmentos pop. En mi situación, he usado actionbaractivity (extends FragmentAcvitiy), pero también usé "getFragmentManager", así que tengo el mismo error que tú. Después de haber reemplazado "getFragmentManager" por "getSupportFragmentManager", ¡eso está bien! También puede reemplazar "actionbaractiviy" por "Activity" para solucionar este problema.

Debe asegurarse de que "getFragmentManager" coincida con "Actividad", "getSupportFragmentManager" coincida con "FragmentActivity (ActionbarActivity)".

Si desea agregar barra de acción En el nivel de API 11 o superior, puede ver a continuación:

https://developer.android.com/guide/topics/ui/actionbar.html#Adding

En el nivel 11 de la API o superior La barra de acciones se incluye en todas las actividades que utilizan el tema Theme.Holo (o uno de sus descendientes), que es el tema predeterminado cuando el atributo targetSdkVersion o minSdkVersion está establecido en "11" o superior. Si no desea que la barra de acción de una actividad, establezca el tema de actividad en Theme.Holo.NoActionBar.

  • Dynamic Center Aligned ViewPager
  • Snackbar no funciona dentro de la clase de fragmento
  • Fragmentos, AsyncTask y Oyentes
  • Pasar los datos a otro fragmento de vista de desplazamiento con la pestaña de estudio de Android, no botón
  • Señal fatal 11 (SIGSEGV) en 0x00000000 (código = 1), hilo 27830 (ple.myfragexample) - sólo en Android 4.1.2
  • Uso de la barra de herramientas en fragmento o en la actividad
  • Android Material diseño transiciones
  • Cómo puedo establecer un intervalo de minutos en DialogFragment
  • Cómo cambiar la pestaña Color del indicador por programa
  • "La actividad ha sido destruida" a veces cuando se puebla viewpager con fragmentos
  • Añadiendo un fragmento en la parte superior de otro fragmento onClickListener
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.