Es la primera vez que creo un post en esta sección, normalmente lo que hago es responderlos
Voy a explicar un problema que me ha pasado esta mañana, y que no se si es cosa de mi móvil o pasará con todos
Aunque no lo indique, todo lo que explico a continuación es usando AppCompat, aunque el móvil es Lollipop.
Normalmente nunca uso Toolbar, suelo poner el botón de menú a la izquierda, un menú en el centro y un SearchView a la derecha, todo a mano. Pero estoy haciendo una aplicación nueva para una empresa que quieren cosas muy visuales, así que me he puesto con el Toolbar para poder añadir el ActionBarDrawerToggle (el botón de menú que se convierte en una flecla y viceversa según el % que esté abierto el DrawerLayout).
Pues bien, hago mi Toolbar, le quito el Title, le pongo un logo, le añado el DrawerLayout y su configuración, le añado el SearchView mediante un menú de la siguiente manera:
[PHP]
<item
android:id="@+id/search"
android:title="@string/buscar"
android:icon="@android:drawable/ic_menu_search"
myapp:showAsAction="always"
myapp:actionViewClass="android.support.v7.widget.S earchView"/>
[/PHP]
Añado mi código para que funcione de esta otra:
[PHP]
getMenuInflater().inflate(R.menu.menu_principal, menu);
return true;
[/PHP]
Y todo funciona perfecto, pero en estas que pulso el botón de menú del móvil (tengo un S5, el botón de menú en una pulsación larga en el botón que muestra las apps abiertas) y al pulsar atrás el método onBackPressed() no se ejecuta. Le pongo puntos de interrupción y nada. Si no pulso menú todo funciona perfecto, pero si lo pulso bloqueada, no puedes salir. Si abro el DrawerLayout y pulso atrás se cierra, pero el onBackPressed no se ejecuta.
En estás que cambio el "always" del SearchView a "never", la lupa no sale, pero al pulsar menú aparece el texto "Buscar" (que no hace nada) pero el onBackPressed si funciona.
Así que vuelvo a ponerlo a "always" y añado otra opción de menú más, quedando así:
[PHP]
<item
android:id="@+id/search"
android:title="@string/buscar"
android:icon="@android:drawable/ic_menu_search"
myapp:showAsAction="always"
myapp:actionViewClass="android.support.v7.widget.S earchView"/>
<item
android:id="@+id/acercade"
android:title="@string/acercade"
myapp:showAsAction="never" />
[/PHP]
Ahora además de la lupa me aperecen los 3 puntos verticales. Si los pulso aparece la opción "Acerca de" arriba, si pulso el botón de menú aparece "Acerca de" abajo. Y el OnBackPressed() funciona perfectamente.
Y después de todo este rollazo que dejo aquí por si alguien se encuentra el mismo problema es.
¿A alguien más le ha pasado esto y ha encontrado una forma menos chapuza de solucionarlo?
Un saludo.