Sistema de navegación usando BottomNavigationView
Añadir menus menu/navigation.xml
Crear layouts del principal activity_main.xml
y de cada vista derivar de fragment_view.xml.xml
Definición de las vistas relacionando con sus fragments define_fragment.java
Implementar sistema de carga de fragments y definir la navegación
MainActivity.java
y cargar fragments con openfragment(contenedor,fragment)
Si queremos que los fragments esten en memoria y siempre que volvemos a el, este como lo dejamos.
private void openFragment(int frameContainer, Fragment newFragment) {
String loadFragmentName = newFragment.getClass().getName();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
//ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
Fragment currentFragment = getSupportFragmentManager().findFragmentById(frameContainer);
if (currentFragment == null) {
Log.d(TAG, "openFragment: ADD" + loadFragmentName + " in stack");
ft.add(frameContainer, newFragment, loadFragmentName);
ft.commit();
oldFragmentTAG = loadFragmentName;
} else {
if (!oldFragmentTAG.equalsIgnoreCase(loadFragmentName)) {
Log.d(TAG, "openFragment: REPLACE" + loadFragmentName + " in stack");
if (fm.findFragmentByTag(loadFragmentName) == null) {
ft.add(frameContainer, newFragment, loadFragmentName);
ft.commit();
}
showHideFragment(fm.findFragmentByTag(oldFragmentTAG));
showHideFragment(fm.findFragmentByTag(loadFragmentName));
//ft.addToBackStack(newFragment.getClass().getName());
oldFragmentTAG = loadFragmentName;
} else {
Log.w(TAG, "openFragment: NO REPLACE");
}
}
}