2012-06-29 24 views
19

estoy usando ActionBarSherlock, y tratando de ocultar/mostrar la Barra de acciones para las imágenes a pantalla completa, usando:Barra de acciones o ActionBarSherlock - Suavemente Ocultar/Mostrar el Barra de acciones

getSupportActionBar.hide(); 

y

getSupportActionBar.show(); 

Pero es realmente nervioso y torpe. ¿Hay alguna manera de hacerlo más suave o aplicar una animación de traducción/opacidad?

Al realizar una inspección adicional de la fuente de ABS, y al observar su comportamiento, parece tener definida al menos una cantidad mínima de animación. No se puede decir lo mismo de la ActionBar estándar.

simplemente para la corrección, aquí está el código correspondiente estoy llamada de un ImageView.click:

if(shouldRender) 
{ 
    . . . 

    getSupportActionBar().hide(); 

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
else 
{ 
    . . . 

    getSupportActionBar().show(); 

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 

Vale la pena señalar que la fijación de las banderas/claro también provoca un salto, pero uno mucho menos notable , así que lo abordaré más tarde, si es que lo hago.

Editar:This (por el creador de ABS) parece indicar que es imposible en un ActionBar nativo. Supongo que podría simplemente editar los dos archivos XML que definen su animación, pero eso no me dará una penetración completa en la plataforma.

Respuesta

17

utilizo una superposición Barra de acciones

requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERL‌​AY); 

que no muestra una animación cuando show()/hide() se llama.

+4

¿Qué es una barra de acción de superposición? ¿Puedes proporcionar más información? – greg7gkb

+1

'requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERLAY);', – Salw

+2

Documentación oficial sobre el tema: http://developer.android.com/reference/android/view/Window.html#FEATURE_ACTION_BAR_OVERLAY –

Cuestiones relacionadas