Hola Ramon, en el Manifests tenía puesto este código:
android:configChanges="orientation|keyboardHidden|screenSize"
Aunque no creo que tenga nada que ver con que este puesto también el “keyboardHidden”, pero me toco quitar este código, porque tengo creada un layout para mostrar la ventana en vertical y otro layout distinto para mostrar la pantalla en horizontal, y al poner ese código no muestra el segundo layout al girar la pantalla.
Y con el onSaveInstanceState no me aclaro muy bien, estuve haciendo pruebas hace algún tiempo por otro motivo, ya que me interesaba guardar el estado de esa actividad para que no fuesen eliminados por el tema ese de los ciclos de vida, y cuando volviese a esa actividad me mostrase lo que tenía en ese momento que la deje, pero me lie con el código, igual que ahora que no me funciona y no se si es porque no lo estoy haciendo bien.
Este es el código que estoy utilizando para ocultar el boton FloatingActionButton
bSB.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_EXPANDED) {
fab.hide();
}
if (newState == BottomSheetBehavior.STATE_COLLAPSED) {
fab.show();
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {}
});
Como te comento se oculta bien, pero al girar la pantalla vuelve aparecer.
Me gustaría probar guarda el estado con el onSaveInstanceState, pero a ver si me puedes ayudar a intentarlo con esto, en el onCreate tengo puesto esto:
// variables para guardar el estado
static final String STATE_USER = "user";
private String mUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
mUser = savedInstanceState.getString(STATE_USER);
} else {
mUser = "NewUser";
}
}
Y fuera del onCreate el código para guardar el estado,
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putString(STATE_USER, mUser);
super.onSaveInstanceState(savedInstanceState);
}
Pero si esto funciona bien, como y donde tengo que poner el código para Cargar un estado
P.D. estoy intentando poner el codigo para que se vea bien en el post, estoy escogiendo "Javascript"
Un saludo.