¿Cómo se elimina el texto del título de la barra de acciones de Android?

106

Estoy revisando el Holo.Lighttema y parece que no puedo encontrar el estilo mágico que anular para deshacerme del texto del título que aparece brevemente cuando mi aplicación se inicia por primera vez.

¿Cómo puedo hacer eso?

Christopher Perry
fuente

Respuestas:

216

Tratar:

 getActionBar().setDisplayShowTitleEnabled(false);

Para la versión 7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);
Filippo Mazza
fuente
22
aún verá el título mientras se carga la barra de acción, que no es lo que desea. la solución correcta es la que sugirió m3n0R.
numan salati
12
debería ser getSupportActionBar (). setDisplayShowTitleEnabled (false); para v7. de lo contrario, producirá una excepción de puntero nulo
Amir
5
@numansalati ¿Quién es m3n0R? Busqué en la página y no encontré nada
ka3ak
¿Cuándo debo llamar a los métodos? Quiero decir, ¿desde qué método (actividad, fragmento) debería llamarse?
ka3ak
94

Creo que esta es la respuesta correcta:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>
</style>
cesar
fuente
¿Qué pasa con Android 4? No estoy usando ActionBarSherlock, por lo que no hay ningún recurso nombrado Widget.Sherlock.Light.ActionBar.Solid.Inverse. ¿Qué padre debo usar?
Alex Semeniuk
Tema Holo. Por defecto, hay 3 temas holográficos que puede ampliar.
cesards
Esto funciona para ocultar el título en el primer lanzamiento. En otra actividad, llamar a setTitle no funciona. ¿Hay alguna forma de intercambiar estilos de barra de acción en tiempo de ejecución?
speedynomads
configuración del tema predeterminado en tiempo de ejecución :)
cesards
@ domji84, puede especificar el tema de cada actividad en el archivo de manifiesto.
ashishduh
63

Soy muy nuevo en Android, así que corrígeme si me equivoco, pero creo que si decides usar las pestañas de navegación en la barra de acción, parece que no están completamente alineadas a la izquierda porque el color del texto del título solo es transparente y no tiene se ha ido.

<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
     <item name="android:displayOptions">useLogo|showHome</item>
</style>

trabajó para mi.

chispazo
fuente
sí, estás equivocado, sin pestañas en cuestión y sin luz holográfica en tu respuesta
miky
Mientras intento esto, aparece este error, @android: style / Widget.Holo.ActionBar requiere API nivel 11 (el mínimo actual es 10).
jrhamza
Si quiero asignar este estilo a la barra de acciones de una actividad específica y no a todas las actividades de mi aplicación. ¿Cómo puedo hacerlo? ¿Dónde pongo la línea 'android: displayOptions'? en Menu.xml? ¿En AndroidMenifest.xml?
GyRo
43

Entendido. Tienes que anular

android:actionBarStyle

y luego, en su estilo personalizado, debe anular

android:titleTextStyle

Aquí tienes una muestra.

En mi themes.xml:

<style name="CustomActionBar" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

Y en mi styles.xml:

<style name="CustomActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>
</style>

<style name="NoTitleText">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">#00000000</item>
</style>

No estoy seguro de por qué establecer textSize en cero no funcionó (encogió el texto, pero no hizo que desapareciera), pero configurar textColor en transparente funciona.

Christopher Perry
fuente
3
Sí, eso ayudó. ¿Alguna idea de por qué android:visibility=goneno tiene ningún efecto? O mejor aún, ¿por qué setDisplayShowTitleEnabledsigue mostrando el texto del título mientras se carga la barra?
Matthias
7
Use <item name = "android: displayOptions"> useLogo | showHome </item> en lugar de establecer el tamaño en 0
Jerome VDL
23

En tu manifiesto

<activity android:name=".ActivityHere"
     android:label="">
queso fácil
fuente
33
Esto funciona, pero evitará que su aplicación aparezca en el selector 'Aplicaciones utilizadas recientemente'
Rupert Bates
1
esto hace que la aplicación no tenga nombre en las aplicaciones del teléfono / pantalla principal
Nimitack
13

Escriba esta declaración debajo

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

si se extiende el uso de AppCompactActivity getSupportActionbar()si se extiende el uso de actividad, de lo getActionBar()contrario, puede dar

null pointer exception

usar android:label=""in AndroidManifest.xml para la actividad también funciona, pero su aplicación no aparecerá enRecently used apps

Manohar Reddy
fuente
9

tienes dos opciones:

primero:

getActionBar().setDisplayShowTitleEnabled(false);

Si usign getActionBar()produjo una excepción de puntero nulo, debe usar getSupportActionBar()

Second

getSupportActionBar().setTitle("your title");

o

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();
Hamid
fuente
6

uso este código en el manifiesto de la aplicación

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo2"
        android:label="@string/title_text"
        android:theme="@style/Theme.Zinoostyle" >

mi archivo de logotipo es de 200 * 800 píxeles y uso este código en la actividad principal.java

getActionBar().setDisplayShowTitleEnabled(false);

funcionará correctamente

Milaaaad
fuente
6

Intenté esto. Esto ayudará -

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

getSupportActionBar debe llamarse después de setSupportActionBar, configurando así la barra de herramientas; de lo contrario, NullpointerException porque no hay un conjunto de barras de herramientas. Espero que esto ayude

Kenobiwan
fuente
5

Puede cambiar el estilo aplicado a cada actividad, o si solo desea cambiar el comportamiento para una actividad específica, puede probar esto:

setDisplayOptions(int options, int mask) --- Set selected display 
  or
setDisplayOptions(int options) --- Set display options.

Para mostrar el título en la barra de acciones, configure las opciones de visualización en onCreate ()

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);

Para ocultar el título en la barra de acciones.

getSupportActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

Detalles aquí .

Siqi Liu
fuente
3

Lo único que realmente funcionó para mí fue agregar:

<activity 
    android:name=".ActivityHere"
    android:label=""
>
ShiftlessAndreas
fuente
Bueno, fue la respuesta "incorrecta", sin embargo, me ayudó con un caso similar :)
Javier
1
No haga esto, ya que bloqueará su aplicación cuando se minimice
jfcartier
3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

espero que esto ayude

MallaPadukka
fuente
2

Utilice lo siguiente:

requestWindowFeature(Window.FEATURE_NO_TITLE);
Vivek
fuente
No puede hacer eso si está usando ActionBar. Si intenta hacer esto, la aplicación se bloqueará inmediatamente cuando se abra.
Christopher Perry
@ChristopherPerry no es cierto. puede usar esto para eliminar la barra de acción en el código, siempre que lo haga antes de llamar a setContentView.
numan salati
sin embargo, esto es eliminar toda la barra de acciones en lugar de solo su título.
bofredo
2

Si solo desea hacerlo para una actividad y tal vez incluso de forma dinámica, también puede usar

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);
Heiko Rupp
fuente
1

como solución, simplemente agregue esta línea en caso de que tenga acciones / barras de herramientas personalizadas

this.setTitle("");

en tu actividad

Mihsen
fuente
1

Si bien todos estos son aceptables, si su actividad solo contiene una actividad principal, puede editar res\values\styles.xmlasí:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

He actualizado parenty añadido la propiedad .NoActionBar con el tema Luz Estudios Android de Create Blank ApplicationAsistente.

eyoung100
fuente
Eso deshabilitará toda la barra de acción, no solo el título. Y si desea crear una barra de acción en blanco, tendrá que hacerlo para cada vista.
AlwaysConfused
1

Simplemente extiende tu archivo java desde AppCompatActivityy haz esto:

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");
Duro
fuente
0

En su página manifest.xml puede dar la dirección a su etiqueta de actividad. la dirección está en algún lugar de sus valores / strings.xml. luego puede cambiar el valor de la etiqueta en el archivo xml a nulo.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_main_activity"></string>
</resources>
Damoon
fuente
0

Soy nuevo en Android, así que tal vez me equivoque ... pero para resolver este problema, ¿no podemos simplemente ir al manifiesto y eliminar la etiqueta de actividad?

<activity
        android:name=".Bcft"
        android:screenOrientation="portrait"

        **android:label="" >**

Trabajó para mi....

Ebin Xavier José
fuente
-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");
Joe Lewis
fuente
3
@Matteo Aunque puede funcionar, ciertamente es incompleto y no es la forma correcta de hacerlo. De hecho, en realidad no elimina el texto del título, simplemente lo establece en "", para que no pueda verlo.
user1234