Cómo ocultar la barra de título para una actividad en XML con un tema personalizado existente

Quiero ocultar la barra de título para algunas de mis actividades. El problema es que apliqué un estilo a todas mis actividades, por lo tanto, no puedo simplemente configurar el tema en @android:style/Theme.NoTitleBar .

Usar el tema NoTitleBar como padre para mi estilo eliminaría la barra de título de todas mis actividades.

¿Puedo establecer un elemento de estilo sin título en algún lugar?

Haz esto en tu método onCreate() .

 //Remove title bar this.requestWindowFeature(Window.FEATURE_NO_TITLE); //Remove notification bar this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //set content view AFTER ABOVE sequence (to avoid crash) this.setContentView(R.layout.your_layout_name_here); 

this refiere a la Activity .

Puedes modificar tu AndroidManifest.xml :

  

o usa android:theme="@android:style/Theme.Black.NoTitleBar" si no necesitas una actividad de pantalla completa.

Nota: Si ha utilizado una vista ‘predeterminada’ anteriormente, probablemente también deba cambiar la clase principal de AppCompatActivity a Activity .

Ahora hice lo siguiente.

Decidí un estilo heredando todo de mi estilo general y luego deshabilité la barra de título.

  

Ahora puedo configurar este estilo para cada actividad en la que deseo ocultar la barra de título sobrescribiendo el estilo de toda la aplicación y heredando todas las demás informaciones de estilo, por lo que no habrá duplicación en el código de estilo.

Para aplicar el estilo a una Actividad en particular, abra AndroidManifest.xml y agregue el siguiente atributo a la etiqueta de activity ;

  

No me gusta this.requestWindowFeature(Window.FEATURE_NO_TITLE); porque la barra de título aparece brevemente, luego desaparece.

Tampoco me gusta el android:theme="@android:style/Theme.NoTitleBar" porque perdí todos los cambios 3.0+ Holo a los que los usuarios de los nuevos dispositivos se han acostumbrado. Entonces encontré esta solución.

En su carpeta res / values, cree un archivo llamado styles.xml (si aún no existe). En ese archivo, coloque el siguiente código:

      

A continuación, cree una res / values-v11 con otro archivo styles.xml (una vez más, esto ya puede existir). En ese archivo, coloque el siguiente código:

      

Y si su objective es 4.0+, cree una carpeta res / values-v14 con otro archivo de styles.xml (sí, puede que ya esté allí). En ese archivo, coloque el siguiente código:

      

Finalmente, con todos estos archivos creados, abra su archivo AndroidManifiest.xml y puede agregar el código:

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

a la etiqueta de actividad de la actividad para la que no desea título o la etiqueta de la aplicación si desea que se aplique a toda la aplicación.

Ahora sus usuarios obtendrán los temas asociados con la versión de su dispositivo con el diseño de pantalla que desee.

PD Cambiar el valor a android:theme="@style/Theme.FullScreen" tendrá el mismo efecto, pero también eliminará la barra de notificaciones.

La barra de título se puede eliminar de dos maneras, como se menciona en la página de desarrollador de Android:

En el archivo manifest.xml :

  1. Agregue lo siguiente en la application si desea eliminarlo para todas las actividades en una aplicación:

      
  2. O para una actividad particular:

      

la respuesta correcta es, probablemente, no extender ActionbarActivity en lugar de ampliar simplemente Actividad


si todavía usas la actividad de la barra de acciones parece que está funcionando:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); //<< this setContentView(R.layout.activity_main); } 

parece que esto también funciona:

 styles.xml:  

podría hacer como escribió Scott Biggs. este tipo de obras. excepto que no hay un tema entonces. me refiero a que el fondo del menú de configuración es transparente:

solo cambia

 public class MainActivity extends ActionBarActivity { 

a Activity o FragmentActivity

 public class MainActivity extends Activity { 

sin embargo, podría hacer que se vea lo suficientemente bien usando material design y no eliminar la barra de acciones: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53

  1. establecer icono de aplicación
  2. establece los colores de la barra de acciones para que coincida con el diseño.
  3. configurar icono en el menú de configuración
  4. agregar más icons (botones en la parte superior)

es por ejemplo del estilo de barra de acción de compatibilidad de diseño de materiales.

Si utiliza this.requestWindowFeature(Window.FEATURE_NO_TITLE) usuario podrá ver la barra de título solo por un momento durante la animación de inicio cuando la actividad comience en onCreate . Si usa @android:style/Theme.Black.NoTitleBar como se muestra a continuación, la barra de título no se mostrará durante la animación de lanzamiento.

  

El ejemplo anterior obviamente anulará el tema de su aplicación existente, si tiene un tema existente, entonces agregue true a él.

lo que funciona para mí:

1- en styles.xml:

   

2- en MainActivity

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); //<< this setContentView(R.layout.activity_main); } 
  1. en manifiesto heredan el estilo:

      

cuando traté de usar todas esas respuestas elevadas, mi aplicación siempre se bloqueó. (Creo que tiene algo que ver con el “@android: estilo”?)

La mejor solución para mí fue usar lo siguiente:

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

Sin encabezado / barra de título nunca más. Simplemente colóquelo en ... o ... dependiendo de si (no) lo quiere en toda la aplicación o solo una actividad específica.

Crea un tema como a continuación.

    

Añadir

true

dentro de AppTheme (styles.xml)

Simplemente use getActionBar().hide(); en su actividad principal en el método onCreate() .

Solo debe cambiar el estilo de AppTheme en Style.xml si reemplaza la definición de DarkActionBar

  

a NoActionBar

  

el AppTheme definido en AndroidManifast.xml

Puedes usar este código en tu archivo java

agregue esta línea antes de configurar o cargar su vista

 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); 

Agregue ambos para el tema que usa:

  false true 

En su método onCreate , use el siguiente fragmento de onCreate :

 this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

Para AppCompat , la siguiente solución funcionó para mí:

Agregue un nuevo estilo de tema sin barra de acción en su styles.xml y establezca parent="Theme.AppCompat.NoActionBar" .

  

Ahora implemente el mismo estilo de tema para su actividad de pantalla de androidManifest.xml en androidManifest.xml

  // apply splash them here      

Aquí está el resultado:

enter image description here

Agregue este estilo a su archivo style.xml

   

Después de eso, haga referencia a este nombre de estilo en su androidManifest.xml en una actividad particular en la que no desee ver la barra de título, como se muestra a continuación.

   

O si desea ocultar / mostrar la barra de título en cualquier punto:

 private void toggleFullscreen(boolean fullscreen) { WindowManager.LayoutParams attrs = getWindow().getAttributes(); if (fullscreen) { attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; } else { attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; } getWindow().setAttributes(attrs); } 

La primera respuesta es anfíbol. aquí está mi explicación: agregar:

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

en el método oncreate ()

antes de:

 super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); 

(no solo antes de setContentView) si no haces esto, obtendrás forzar el cierre. +1 esta respuesta.

En mi caso, si está utilizando android studio 2.1, y su comstackción SDK versión es 6.0, simplemente vaya a su archivo manifest.xml y cambie el siguiente código:

Aquí está el código:

            

Y aquí está el snip shoot (ver el código de resaltado): enter image description here

Estoy usando un widget de soporte Toolbar v7. Entonces, para poder eliminar u ocultar el Título, necesitamos escribir esto.

 Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); //Remove¡ing title bar getSupportActionBar().setDisplayShowTitleEnabled(false); 

Para ocultar tanto el título como la barra de acción, hice esto:

En la etiqueta de actividad de Manifest:

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

En Activity.java before setContentView:

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

es decir,

// Eliminar la barra de título

this.requestWindowFeature (Window.FEATURE_NO_TITLE);

// Eliminar la barra de notificaciones

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

NOTA : debe mantener estas líneas antes de setContentView

Encontré dos razones por las que podría ocurrir este error.

Uno. Los indicadores de Ventana ya están establecidos dentro de super.onCreate(savedInstanceState); en ese caso, puede usar el siguiente orden de comandos:

 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); 

Dos. Tiene el botón Atrás / Arriba dentro de la Barra de título, lo que significa que la actividad actual es un elemento secundario jerárquico de otra actividad, en cuyo caso es posible que desee comentar o eliminar esta línea de código desde dentro del método onCreate .

 getActionBar().setDisplayHomeAsUpEnabled(true); 

Así es como se ve el código completo. Tenga en cuenta la importación de android.view.Window.

 package com.hoshan.tarik.test; import android.app.Activity; import android.os.Bundle; import android.view.Window; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); } } 

Esto solucionó mi problema

En manifestar mi actividad:

        

En estilo bajo el nombre de “AppTheme”:

     

Agregue theme @ style / Theme.AppCompat.Light.NoActionBar en su actividad en AndroidManifest.xml como este

   

Si hace lo que dicen los usuarios de YaW y Doug Paul , debe tener en cuenta que las características de la ventana deben establecerse antes de llamar a setContentView. Si no, obtendrás una excepción.

agregar en el archivo manifiest,

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

agregue la siguiente línea en su archivo java,

  this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

Ejem, puedes aplicar temas a actividades individuales en XML , como sin título. En otras palabras, sáquelo de su etiqueta de aplicación, abra la statement de etiqueta y colóquelo en la etiqueta de actividad deseada.