android - studio - Cambiar el ícono del cajón de nuevo a la flecha hacia atrás
como cambiar el icono de mi app android (2)
Estoy usando el nuevo DrawerLayout
para tener navegación lateral. Estoy usando el ícono del cajón (la ''hamburguesa'') como este:
@Override
protected void onStart() {
super.onStart();
mDrawerLayout = (DrawerLayout) findViewById(R.id.activity_main_drawerlayout);
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_navigation_drawer,
R.string.app_name,
R.string.app_name);
mDrawerLayout.setDrawerListener(mDrawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
}
Sin embargo, cuando agregue un Fragment
a la backstack, quiero volver a mostrar la flecha hacia atrás, para que el usuario pueda volver a "inicio", y solo luego abra el cajón de la aplicación.
¿Cómo puedo restablecer el icono del cajón al ícono de atrás?
La flecha que quiero:
Creé una interfaz para la actividad de alojamiento para actualizar el estado de vista del menú de hamburguesas. Para los fragmentos de nivel superior establezco el alternar en true
y para los fragmentos para los que quiero mostrar el up <arrow establecí el alternar en false
.
public class SomeFragment extends Fragment {
public interface OnFragmentInteractionListener {
public void showDrawerToggle(boolean showDrawerToggle);
}
private OnFragmentInteractionListener mListener;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.mListener = (OnFragmentInteractionListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener");
}
}
@Override
public void onResume() {
super.onResume();
mListener.showDrawerToggle(false);
}
}
Entonces en mi actividad ...
public class MainActivity extends Activity implements SomeFragment.OnFragmentInteractionListener {
private ActionBarDrawerToggle mDrawerToggle;
public void showDrawerToggle(boolean showDrawerIndicator) {
mDrawerToggle.setDrawerIndicatorEnabled(showDrawerIndicator);
}
}
Para deshabilitar y esconder el DrawerToggle "Hamburger", simplemente llame
mDrawerToggle.setDrawerIndicatorEnabled(false);