studio quitar ocultar notificaciones noactionbar navegacion como barra app aplicación actionbar android android-3.0-honeycomb android-actionbar

android - quitar - ¿Cómo ocultar la barra de acción antes de crear la actividad y luego mostrarla de nuevo?



quitar navbar android studio (25)

Necesito implementar la pantalla de bienvenida en mi aplicación Honeycomb. Yo uso este código en la actividad de onCreate 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 el splash, 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?

Intenté aplicar el tema a la actividad sin barra de acción:

<item name="android:windowActionBar">false</item>

pero en ese caso, getActionBar () siempre devuelve null y no encontré ninguna manera de mostrarlo nuevamente.


2015, utilizando la biblioteca de soporte v7 con el tema AppCompat, establezca este tema para su actividad.

<style name="AppTheme.AppStyled" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimaryDark">@color/md_indigo_100</item> <item name="colorPrimary">@color/md_indigo_500</item> <item name="colorAccent">@color/md_red_500</item> <item name="android:textColorPrimary">@color/md_white_1000</item> <item name="android:textColor">@color/md_purple_500</item> <item name="android:textStyle">bold</item> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> </style>


Android studio proporciona en la plantilla de compilación para pantalla completa, si utiliza 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 ver la pantalla completa.


Coloque su pantalla de startActivityForResult en una actividad separada y use startActivityForResult del startActivityForResult de su actividad principal para mostrarla. Esto funciona porque, según la documentación:

Como caso especial, si llama a startActivityForResult () con un requestCode> = 0 durante el inicio de creación de onCreate (Bundle savedInstanceState) / onResume () de su actividad, su ventana no se mostrará hasta que el resultado regrese de la actividad iniciada . Esto es para evitar el parpadeo visible cuando se redirige a otra actividad.

Probablemente debería hacer esto solo si el argumento de onCreate es null (lo que indica un nuevo inicio de su actividad, en lugar de un reinicio debido a un cambio de configuración).


Crea dos estilos:

<style name="AppThemeNoBar" parent="Theme.AppCompat.Light"> <item name="android:windowNoTitle">true</item> </style> <style name="AppThemeBar" parent="Theme.AppCompat.Light"> <item name="android:windowNoTitle">false</item> </style>

Establezca AppThemeNoBar como tema de aplicación y AppThemeBar a la actividad en la que desea mostrar la Barra de acción. Al usar dos estilos, no verá la barra de Acción mientras se cargan las vistas.

Revisa este enlace de Android: oculta la barra de acción mientras ves la carga


El mejor resultado para mí fue crear una actividad con ThemeNoTitleBar y sin contenido como iniciador. Entonces esta actividad llama directamente a la otra.

Por supuesto, si lo desea, puede agregar contenido a la Actividad de Splash, pero en mi caso solo quería mostrar la aplicación directamente.

Manifiesto:

<activity android:name="com.package.SplashActivity" android:theme="@android:style/Theme.Black.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

Actividad:

public class SplashActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //start StartActivity Intent intent = new Intent(this, StartActivity.class); startActivity(intent); finish(); }

}


En caso de que tenga un valor nulo porque está utilizando la biblioteca de soporte , en lugar de getActionBar() debe llamar a getSupportActionBar() .


En realidad, simplemente puede configurar la Activity de NoActionBar con NoActionBar y establecer su activity principal con la barra de acción.


Hola tengo una solución simple usando 2 temas

  1. Tema de pantalla de bienvenida (agregarlo al manifiesto):

    <style name="SplashTheme" parent="@android:style/Theme.Holo.NoActionBar"> <item name="android:windowBackground">@color/red</item> </style>

  2. tema normal (agréguelo a su actividad por setTheme (R.style.Theme)):

    <style name="Theme" parent="@style/Theme.Holo"> <item name="android:windowBackground">@color/blue</item> </style>

Para soportar SDK 10:

@Override public void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme); super.onCreate(savedInstanceState); ........... ........... }


La configuración de android:windowActionBar="false" realmente deshabilita el ActionBar pero luego, como dices, getActionBar(); devuelve nulo. Esto se resuelve mediante:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_ACTION_BAR); getActionBar().hide(); setContentView(R.layout.splash); // be sure you call this AFTER requestFeature

Esto crea la barra de acción e inmediatamente la oculta antes de que tenga la oportunidad de mostrarse.

Pero ahora hay otro problema. Después de colocar windowActionBar="false" en el tema, la Actividad dibuja su título de ventana normal en lugar de una barra de acción.
Si intentamos evitar esto utilizando algunos de los temas de stock de *.NoTitleBar o intentamos poner <item name="android:windowNoTitle">true</item> en nuestro propio tema, no funcionará.
El motivo es que la barra de acción depende del título de la ventana para mostrarse, es decir, la barra de acción 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:

<item name="android:windowActionBar">false</item> <item name="android:windowTitleSize">0dp</item>

Esto hará que el título de la ventana con 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

setContentView(R.layout.main); getActionBar().show();

y ya está. La Actividad comenzará sin parpadear el Barra de Acción, ni se mostrará el Título de la Ventana.

ADDON: Si muestra y oculta la barra de acción varias veces, tal vez haya notado que la primera muestra no está animada. A partir de entonces se muestran animadas y ocultas. Si quieres tener animación en la primera muestra también puedes usar esto:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_ACTION_BAR); // delaying the hiding of the ActionBar Handler h = new Handler(); h.post(new Runnable() { @Override public void run() { getActionBar().hide(); } });

Lo mismo se puede lograr con:

protected void onPostResume() { super.onPostResume(); getActionBar().hide();

pero puede necesitar un poco de lógica adicional para verificar si esta es la primera muestra de la Actividad.

La idea es retrasar un poco la ocultación de la ActionBar. De una manera dejamos que se muestre la barra de acción, pero luego la escondemos inmediatamente. Por lo tanto, vamos más allá de la primera proyección no animada y la siguiente proyección se considerará la segunda, por lo que será animada.

Como habrás adivinado, existe la posibilidad de que la barra de acción pueda verse antes de que la operación diferida 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 la barra de acción por una fracción de segundo.

En cualquier caso, esta no es una solución bonita, así que doy la bienvenida a cualquier sugerencia.

Además del usuario de la barra de acción de soporte de v7, el código será:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR); getSupportActionBar().hide();


La mejor manera de hacer esto es hacer la primera actividad como una actividad en blanco y el contenido que desea colocar y luego, después de un tiempo, iniciar otra actividad. Al seguir de esta manera, puedes realizar la primera actividad como tu pantalla de inicio sin barra de acción ni nada. Heres mi primera actividad

package com.superoriginal.rootashadnasim.syllabus; import android.content.Intent; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class first_screen extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first_screen); final Handler h=new Handler(); h.postDelayed(new Runnable() { @Override public void run() { Intent intent=new Intent(getApplicationContext(),DrawerChooseBranchMainActivity.class); startActivity(intent); } },2000); } }

Después de eso, puede poner cualquiera de sus actividades como primera actividad. Si no desea ninguna barra de acción en ninguna pantalla, simplemente agregue esto a sus estilos.

<item name="windowActionBar">false</item> <item name="windowNoTitle">true</item>


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:

<application ... android:theme="@android:style/Theme.Holo.Light.NoActionBar" ...>

BaseActividad:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(R.style.GreenHoloTheme); }

¡De esta manera me ayuda a evitar ActionBar cuando se inicia la aplicación!


La solución @Clerics funciona. Pero esto parece ser también un problema con algunas de las aplicaciones nativas de Google: Google Play Store, hablar. También otras aplicaciones grandes como skype.

EDITAR : La solución de abajo me ha dado un problema para ActionBarsherlock en api <4.0, la razón por la que se estableció el tema no funciona antes de un sándwich de helado

Agregue lo siguiente en su manifiesto dentro de su aplicación o etiquetas de actividad:

android:theme="@style/Theme.NoActionBar"

Y luego en tu actividad principal:

// Set theme setTheme(R.style.YOUR_THEME); getSupportActionBar().setTitle(R.string.title); // Start regular onCreate() super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);


Las soluciones ya publicadas vinieron con el efecto secundario, que la primera llamada .show () no animó la Barra de Acción para mí. Tengo otra buena solución, que solucionó eso:

Crea un dibujable transparente - algo como eso:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#00000000" /> </shape>

Establezca el fondo real de la barra de acción en una vista personalizada invisible que configure en la barra de acción:

getSupportActionBar().setCustomView(R.layout.actionbar_custom_layout); getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

Establezca el fondo transparente para la barra de acción en onCreate:

getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.background_transparent));

Imortante: 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 haya terminado con la creación:

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { getSupportActionBar().hide(); } });

Antes de que su primera llamada .show () establezca la vista personalizada visible:

_actionbarRoot.setVisibility(View.VISIBLE); getSupportActionBar().show();


Me doy cuenta de que los enlaces de publicación no son la mejor manera de hacer las cosas, pero te recomiendo que leas la siguiente documentación de Google. Este es el documento oficial de Android sobre cómo controlar la interfaz de usuario de tu 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 las funciones sin importar para qué versión esté desarrollando, ¡es muy simple!

En caso de que el enlace cambie, se puede encontrar en la documentación oficial de Android en capacitación -> cómo comenzar -> Mejores prácticas para la interfaz de usuario -> administrar la interfaz de usuario del sistema

https://developer.android.com/training/system-ui/index.html


Para la getActionBar() debe usar esta línea en el manifest y no usar getActionBar()

<item name="android:windowActionBar">false</item>

y una vez que finaliza la Activity Splash en la Activity principal, use abajo o nada

<item name="android:windowActionBar">true</item>


Prueba esto, funciona para mí:

Abajo se deshace de la barra de título de la actividad.

requestWindowFeature(Window.FEATURE_NO_TITLE);

A continuación se elimina la barra de notificaciones para que la actividad pase a pantalla completa.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

(Ejemplo completo a continuación) Tome nota: estos métodos fueron llamados antes de configurar la vista de contenido de nuestra actividad

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Sets Application to full screen by removing action bar requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); // without this check, we would create a new fragment at each orientation change! if (null == savedInstanceState) createFragment(); }


Si está utilizando ActionBarSherlock, use Theme.Sherlock.NoActionBar Theme en su actividad

<activity android:name=".SplashScreenActivity" android:theme="@style/Theme.Sherlock.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>


Si usa una Activity incluye una pantalla de inicio, puede hacer esto si usa SherlockActionBar

getSupportActionBar().hide();

Después de la pantalla de inicio puedes mostrarla de nuevo con ...

getSupportActionBar().show();

Debería ser lo mismo con la ActionBar nativa de Android.


Solo agrega esto en tu styles.xml

<item name="android:windowNoTitle">true</item>


También intentaba ocultar la barra de acción en Android 2.2, pero ninguna de estas soluciones funcionó. Todo termina con un choque. Revisé el DDMS LOg, Me estaba diciendo que usara ''Theme.AppCompat''.Al final solucioné el problema cambiando la línea android:theme="@android:style/Theme.Holo.Light.NoActionBar"

into android:theme="@style/Theme.AppCompat.NoActionBar" y funcionó, pero la Interfaz estaba oscura.

Luego probé android:theme="@style/Theme.AppCompat.Light.NoActionBar" y finalmente obtuve lo que quería.

Después de eso, cuando realicé una búsqueda sobre ''AppCompat'' en el sitio del desarrollador obtuve esto.

Así que creo que la solución para Android 2.2 es

<activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

Y lo siento por mi mal inglés como siempre.


Todavía tenía un error con el puntero nulo y finalmente me ayudó cuando llamé primero getWindow (). RequestFeature () y luego super.onCreate ()

public void onCreate(Bundle savedInstanceState) { getWindow().requestFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); getActionBar().show();


Usando este código simple en su archivo .class para ocultar la barra de acción

getSupportActionBar().hide();


esto puede ser útil
agrega esto a tu manifiesto

android:theme="@android:style/Theme.Light.NoTitleBar"

aclamaciones


mejor y simple

requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);


puedes usar esto:

getSupportActionBar().hide(); Si no funciona prueba este:

getActionBar().hide();

Si lo anterior no funciona, intente así:

en su directorio = res / values ​​/ style.xml, abra style.xml -> hay un atributo parent cambia a parent="Theme.AppCompat.Light.DarkActionBar"

Si todo eso no funciona también. ya no lo se pero para mi funciona