Necesito implementar una pantalla de bienvenida en mi aplicación de nido de abeja. Uso este código en onCreate de la actividad para mostrar splash:
setContentView(R.layout.splash);
getActionBar().hide();
y este código para mostrar la interfaz de usuario principal después de algún tiempo:
setContentView(R.layout.main);
getActionBar().show();
Pero antes de que se llame a onCreate y aparezca la presentación, hay una pequeña cantidad de tiempo cuando se muestra la barra de acción.
¿Cómo puedo hacer invisible la barra de acción?
Traté de aplicar el tema a la actividad sin barra de acción:
<item name="android:windowActionBar">false</item>
pero en ese caso getActionBar () siempre devuelve nulo y no encontré ninguna forma de mostrarlo nuevamente.
android
android-3.0-honeycomb
android-actionbar
Ilya Izhovkin
fuente
fuente
Theme.AppCompat.Light
... use esto Cómo responder [1] [1]: stackoverflow.com/a/25365193/1364896Respuestas:
La configuración
android:windowActionBar="false"
realmente deshabilita la barra de acciones pero luego, como usted dice,getActionBar();
devuelve nulo. Esto se resuelve mediante:Esto crea la ActionBar e inmediatamente la oculta antes de que tenga la oportunidad de mostrarse.
Pero ahora hay otro problema. Después de poner
windowActionBar="false"
el tema, la Actividad dibuja su Título de ventana normal en lugar de una Barra de acciones.Si tratamos de evitar esto usando algunos de los
*.NoTitleBar
temas comunes o si tratamos de poner<item name="android:windowNoTitle">true</item>
nuestro propio tema, no funcionará.La razón es que ActionBar depende del título de la ventana para mostrarse, es decir, ActionBar es un título de ventana transformado.
Entonces, el truco que puede ayudarnos es agregar una cosa más a nuestro tema de actividad xml:
Esto hará que el título de la ventana tenga altura cero, por lo tanto prácticamente invisible.
En su caso, una vez que haya terminado de mostrar la pantalla de inicio, simplemente puede llamar
y listo La actividad comenzará sin parpadeo de ActionBar, ni se mostrará el título de la ventana.
ADDON: Si muestra y oculta la barra de acciones varias veces, tal vez haya notado que la primera muestra no está animada. A partir de entonces, mostrar y esconderse son animados. Si quieres tener animación en la primera presentación también puedes usar esto:
Lo mismo se puede lograr con:
pero puede necesitar lógica adicional para verificar si esta es la primera muestra de la Actividad.
La idea es retrasar un poco la ocultación de ActionBar. En cierto modo, dejamos que se muestre la Barra de acciones, pero luego la ocultamos de inmediato. Por lo tanto, vamos más allá de la primera presentación no animada y la siguiente muestra se considerará segunda, por lo tanto, será animada.
Como habrás adivinado, existe la posibilidad de que la ActionBar pueda verse antes de que la operación retrasada la haya ocultado. Este es realmente el caso. La mayoría de las veces no se ve nada pero, de vez en cuando, puedes ver el parpadeo de ActionBar por una fracción de segundo.
En cualquier caso, esta no es una solución bonita, por lo que agradezco cualquier sugerencia.
Además para el usuario v7 support actionbar, el código será:
fuente
setTheme
? Debido a que su respuesta funciona muy bien si configuro el tema desde el Manifiesto, pero si lo hagoonCreate
(en mi caso, el tema depende de una preferencia por el tema claro de oscuro), la barra de acción holo predeterminada parpadea antes que la que configuré en mi tema de todas formas. Pero tal vez esto valga otra pregunta SO completa.android:theme="@android:style/Theme.NoTitleBar"
en el Manifiesto y luegosetTheme(R.style.MyTheme)
en la actividad principalonCreate
; Esto asegura (en Android 4+) evitar el flash del holo predeterminadoActionBar
antes del que definí en mi tema (llegué aquí buscando una manera de solucionar esto; en realidad no necesito ninguna pantalla de bienvenida).getSupportActionBar().hide();
despuésgetWindow().requestFeature(Window.FEATURE_ACTION_BAR);
y todo explota con un NPE. ¿Algunas ideas? Problema conTheme.AppCompat
?Usando este código simple en su archivo .class para ocultar la barra de acción
fuente
Si está utilizando ActionBarSherlock, use Theme.Sherlock.NoActionBar Theme en su Actividad
fuente
<activity android:theme="@android:style/Theme.NoActionBar">
.Theme.Sherlock.NoActionBar
significará llamargetActionBar()
ogetSupportActionBar()
(para mostrar posteriormente la barra de acción) devuelve nulo ...error: Error: No resource found that matches the given name (at 'theme' with value '@android:style/ Theme.NoActionBar').
Crea dos estilos:
Establezca AppThemeNoBar como tema de la aplicación y AppThemeBar en la actividad donde desea mostrar la Barra de acciones. Usando dos estilos, no verá la barra de Acción mientras se cargan las vistas.
Comprueba este enlace Android: oculta la barra de acción mientras visualizas la carga
fuente
Hola, tengo una solución simple usando 2 temas
Tema de la pantalla de bienvenida (agréguelo al manifiesto):
<style name="SplashTheme" parent="@android:style/Theme.Holo.NoActionBar"> <item name="android:windowBackground">@color/red</item> </style>
tema normal (agréguelo en su actividad mediante setTheme (R.style.Theme)):
<style name="Theme" parent="@style/Theme.Holo"> <item name="android:windowBackground">@color/blue</item> </style>
Para admitir SDK 10:
fuente
También estaba tratando de ocultar Action Bar en Android 2.2, pero ninguna de estas soluciones funcionó. Todo termina con un choque. Revisé el registro de DDMS, me decía que usara 'Theme.AppCompat'. Finalmente resolví el problema cambiando la
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
líneadentro
android:theme="@style/Theme.AppCompat.NoActionBar"
y funcionó, pero la interfaz estaba oscura.Luego intenté
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
y finalmente obtuve lo que quería.Después de eso, cuando busqué sobre 'AppCompat' en el sitio del desarrollador, obtuve esto.
Así que creo que la solución para Android 2.2 es
Y perdón por mi mal inglés como siempre.
fuente
El mejor resultado para mí fue crear una actividad con ThemeNoTitleBar y sin contenido como lanzador. Entonces esta actividad llama directamente a la otra.
Por supuesto, si lo desea, puede agregar contenido a la Actividad Splash, pero en mi caso solo quería mostrar la aplicación directamente.
Manifiesto:
Actividad:
}
fuente
Si usa uno
Activity
incluido una pantalla de bienvenida, puede hacerlo si usaSherlockActionBar
Después de la pantalla de bienvenida, puede volver a mostrarla con ...
Debería ser lo mismo con nativo
ActionBar
de Android.fuente
La solución @Clerics funciona. Pero esto también parece ser un problema con algunas de las aplicaciones nativas de Google: Google, Play Store, Talk. También otras grandes aplicaciones como Skype.
EDITAR : la solución de abajo me ha dado un problema para actionbarsherlock en api <4.0, la razón se establece El tema no funciona pre sandwich de helado
Agregue lo siguiente en su manifiesto dentro de su aplicación o etiquetas de actividad:
Y luego en su actividad principal:
fuente
mejor y simple
requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
fuente
2015, utilizando la biblioteca de soporte v7 con el tema AppCompat, configure este tema para su Actividad.
fuente
Para
Splashscreen
usted debe usar esta líneamanifest
y no usargetActionBar()
y una vez cuando Splash
Activity
haya terminado en elActivity
uso principal a continuación o nadafuente
<item android:name="android:windowActionBar">true</item>
se deshace de este error, pero no sé si aún funciona.Prueba esto, funciona para mí:
A continuación se elimina la barra de título de la actividad.
A continuación, se elimina la barra de notificaciones para que la actividad pase a pantalla completa
(Ejemplo completo a continuación) Tome nota: estos métodos se llamaron antes de establecer la vista de contenido de nuestra actividad
fuente
esto puede ser útil
agregue esto a su manifiesto
salud
fuente
La mejor manera que encuentro después de leer todas las opciones disponibles es establecer el tema principal sin ActionBar y luego configurar MyTheme en el código principal de toda la Actividad.
Manifiesto:
Actividad base:
¡De esta forma me ayuda a evitar ActionBar cuando se inicia la aplicación!
fuente
Las soluciones ya publicadas llegaron con el efecto secundario, que la primera llamada .show () no animó la ActionBar para mí. Obtuve otra buena solución, que solucionó eso:
Crea un dibujo transparente, algo así:
Establezca el fondo de la barra de acción real en una vista personalizada invisible que establezca en la barra de acción:
Establezca el fondo transparente para la barra de acción en onCreate:
Imortant: no oculte la barra de acción inmediatamente en onCreate, pero con un poco de retraso más tarde, por ejemplo, cuando el diseño termina con la creación:
Antes de su primera llamada .show () configure la vista personalizada visible:
fuente
En caso de que tenga nulo porque está utilizando la biblioteca de soporte , en lugar de
getActionBar()
necesitar llamargetSupportActionBar()
.fuente
Simplemente agregue esto a su MainActivity en la función onCreate.
fuente
supportActionBar?.apply { hide() }
Coloque su pantalla de presentación en una actividad separada y
startActivityForResult
úsela delonCreate
método de su actividad principal para mostrarla. Esto funciona porque, según los documentos:Probablemente debería hacer esto solo si el argumento
onCreate
esnull
(indicando un nuevo lanzamiento de su actividad, en lugar de un reinicio debido a un cambio de configuración).fuente
Todavía tenía un error con el puntero nulo y finalmente ayudó cuando llamé primero a getWindow (). RequestFeature () y luego a super.onCreate ()
fuente
Simplemente agregue esto en su styles.xml
fuente
En realidad, puedes simplemente configurar splash
Activity
conNoActionBar
tuactivity
barra de acción y configurar tu main .fuente
La mejor manera de hacerlo es hacer la primera actividad como actividad en blanco y el contenido que desea poner y luego, después de un tiempo, activar otra actividad. Siguiendo de esta manera, puede realizar la primera actividad como pantalla de inicio sin barra de acción ni nada. Heres mi primera actividad
Después de eso, puede poner cualquiera de sus actividades como primera actividad. Si no desea una barra de acción en ninguna pantalla, simplemente agregue esto en sus estilos
fuente
Android Studio proporciona una plantilla de compilación para pantalla completa, si usa Android Studio puede seguir el siguiente paso para implementar la actividad de pantalla completa.
Hecho. Android Studio hizo su trabajo, ahora puede verificar el código para pantalla completa.
fuente
esta es la mejor forma en que utilicé Ir al archivo java, después de
onCreate
:fuente
Me doy cuenta de que publicar enlaces no es la mejor manera de hacer las cosas, pero le recomiendo que lea la siguiente documentación de Google. Este es el documento oficial de Android sobre cómo controlar la interfaz de usuario del sistema (cosas como la barra de acción, la barra de navegación, etc.). Desafortunadamente, la información es demasiado para publicar directamente, pero después de leer esto, comprenderá exactamente cómo mostrar y ocultar características, sin importar la versión que esté desarrollando, ¡es tan simple!
En caso de que el enlace cambie, se puede encontrar en la documentación oficial de Android en capacitación -> iniciación -> Mejores prácticas para la interfaz de usuario -> administrar la interfaz de usuario del sistema
https://developer.android.com/training/system-ui/index.html
fuente
puedes usar esto:
getSupportActionBar().hide();
si no funciona, prueba este:si lo anterior no funciona, intente así:
en su directorio = res / values / style.xml, abra style.xml -> hay un
parent
cambio de atributo enparent="Theme.AppCompat.Light.DarkActionBar"
si todo eso no funciona también. Ya no lo se. Pero para mí funciona.
fuente