2012-07-15 10 views
8

Estoy usando una ViewPager para desplazarme entre diferentes fragmentos. Hay dos tipos de fragmentos, usando dos recursos de menú diferentes. Estoy invalidando el menú para cambiar entre esos recursos cuando sea necesario. Todo está funcionando bastante bien, pero el menú está "redibujado" sin una animación.Ocultando brevemente ActionBar sin cambiar el tamaño Actividad

Para evitar tener que meterme con elementos de menú individuales, esperaba poder ocultar brevemente la barra de acciones mientras se carga el nuevo menú, mostrándolo cuando se hace eso. Eso funciona como se esperaba también, pero la actividad se cambia de tamaño cuando se activa la barra de acciones.

¿Hay alguna manera de evitar que esto suceda, o de lo contrario ocultar la fea transición entre los recursos del menú?

Respuesta

17

No entendí el menú como parte de su problema, pero hay una solución fácil para evitar que su actividad cambie de tamaño cuando aparece o desaparece la barra de acciones.

Puede indicar a ActionBar que se dibuje en el modo de superposición, lo que significa que flotará en la parte superior de la actividad, en lugar de ser realmente parte del diseño de la actividad. Use android:windowActionBarOverlay en su tema, o la bandera Window.FEATURE_ACTION_BAR_OVERLAY del código.

Probablemente desee utilizar esta característica junto con la constante actionBarSize, que especifica el desplazamiento correcto para la primera vista en su diseño. De esta manera, su contenido aún aparece debajo de la Barra de acciones, pero dado que la barra de acciones en sí es una superposición, al ocultarla/mostrarla, la actividad no cambiará de tamaño.

<SomeView 
    ... 
    android:layout_marginTop="?android:attr/actionBarSize" /> 

Más detalles se pueden encontrar en the documentation.

+0

Perfecto, funciona como se anuncia :) –

Cuestiones relacionadas