Pregunta 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 para @android:style/Theme.NoTitleBar.

Utilizando el NoTitleBar el tema como padre de 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?


785
2018-04-07 08:48


origen


Respuestas:


Haz esto en tu onCreate() método.

//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 se refiere a Activity.


995
2018-04-07 09:35



Puedes modificar tu AndroidManifest.xml:

<activity android:name=".MainActivity"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

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

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


484
2017-09-20 14:56



Ahora hice lo siguiente.

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

<style name="generalnotitle" parent="general">
    <item name="android:windowNoTitle">true</item>
</style>

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 al activity etiqueta;

<activity
    android:theme="@style/generalnotitle">

359
2018-04-13 08:15



No me gusta el 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 Holo 3.0+ a los que los usuarios de los nuevos dispositivos se han acostumbrado. Entonces encontré esta solución.

En tus res / valores carpeta hacer un archivo llamado styles.xml (Si no existe ya) En ese archivo, coloque el siguiente código:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>

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

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>

Y si tiene como objetivo 4.0+, cree un res / values-v14 carpeta con otra más styles.xml archivo (Sí, puede que ya esté allí). En ese archivo, coloque el siguiente código:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>

Finalmente, con todos estos archivos creados, abra su AndroidManifiest.xml archivo 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.


164
2018-01-02 01:06



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

En el manifest.xml archivo:

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

    <application android:theme="@android:style/Theme.Black.NoTitleBar">
    
  2. O para una actividad particular:

    <activity android:theme="@android:style/Theme.Black.NoTitleBar">
    

98
2018-03-20 11:48



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 esto 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:

   <style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
          <item name="android:windowNoTitle">true</item>   <!-- //this -->     
   </style>

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 de diseño 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 iconos (botones en la parte superior)

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


44
2018-01-16 02:49



Si utiliza this.requestWindowFeature(Window.FEATURE_NO_TITLE) el usuario todavía podrá ver la barra de título solo por un momento durante la animación de lanzamiento cuando la actividad comience a través de onCreate. Si utiliza @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.

<activity 
    android:name=".MainActivity" 
    android:label="My App"
    android:theme="@android:style/Theme.Black.NoTitleBar"
    android:screenOrientation="portrait">

el ejemplo anterior obviamente anulará el tema de su aplicación existente, si tiene un tema existente, entonces agregue <item name="android:windowNoTitle">true</item> lo.


41
2017-10-17 07:04