Como você remove o texto do título da ActionBar do Android?

106

Estou examinando o Holo.Lighttema e não consigo encontrar o estilo mágico a ser substituído para me livrar do texto do título que aparece brevemente quando meu aplicativo é iniciado pela primeira vez.

Como eu posso fazer isso?

Christopher Perry
fonte

Respostas:

216

Experimentar:

 getActionBar().setDisplayShowTitleEnabled(false);

Para v.7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);
Filippo Mazza
fonte
22
você ainda verá o título enquanto a barra de ação está carregando, o que não é o que você deseja. a solução certa é a que m3n0R sugeriu.
numan salati
12
deve ser getSupportActionBar (). setDisplayShowTitleEnabled (false); para v7. caso contrário, produzirá execução de ponteiro nulo
Amir
5
@numansalati Quem é m3n0R?
Pesquisei
Quando devo chamar os métodos? Quero dizer, de qual método (atividade, fragmento) ele deve ser chamado?
ka3ak
94

Acho que esta é a resposta certa:

<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>
cesards
fonte
E o Android 4? Não estou usando ActionBarSherlock, portanto não há nenhum recurso nomeado Widget.Sherlock.Light.ActionBar.Solid.Inverse. Que pai devo usar?
Alex Semeniuk
Tema Holo. Por padrão, existem 3 temas holo que você pode estender.
cesards
Isso funciona para ocultar o título no primeiro lançamento. Em outra atividade, a chamada de setTitle não funciona. Existe uma maneira de trocar estilos de barra de ação em tempo de execução?
speedynomads
definindo o tema padrão no tempo de execução :)
cesards
@ domji84, Você pode especificar o tema de cada atividade no arquivo de manifesto.
ashishduh de
63

Eu sou muito novo no Android, então me corrija se eu estiver errado, mas acho que se você decidir usar as guias de navegação na Barra de Ações, elas parecem não estar completamente alinhadas à esquerda porque a cor do texto do título é apenas transparente e não t foi embora.

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

trabalhou para mim.

Sparknoob
fonte
sim, você está errado, nenhuma guia em questão e nenhuma luz
holística
Enquanto estou tentando fazer isso, estou recebendo este erro, @android: style / Widget.Holo.ActionBar requer nível de API 11 (o mínimo atual é 10).
jrhamza de
Se eu quiser atribuir este estilo à barra de ação de uma atividade específica e não para todas as atividades do meu aplicativo. Como eu posso fazer isso? onde coloco a linha 'android: displayOptions'? em Menu.xml? Em AndroidMenifest.xml?
GyRo
43

Entendi. Você tem que substituir

android:actionBarStyle

e então em seu estilo personalizado, você tem que substituir

android:titleTextStyle

Aqui está uma amostra.

Em meu themes.xml:

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

E em meu 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>

Não sei por que definir textSize como zero não funcionou (encolheu o texto, mas não o fez desaparecer), mas definir textColor como transparente funciona.

Christopher Perry
fonte
3
Sim, isso ajudou. Alguma ideia de por android:visibility=goneque não tem efeito? Ou melhor ainda, por que setDisplayShowTitleEnabledainda mostra o texto do título enquanto a barra está carregando?
Matthias
7
Use <item name = "android: displayOptions"> useLogo | showHome </item> em vez de definir o tamanho como 0
Jerome VDL
23

Em seu manifesto

<activity android:name=".ActivityHere"
     android:label="">
queijo fácil
fonte
33
Isso funciona, mas fará com que seu aplicativo pare de aparecer no seletor de "Aplicativos usados ​​recentemente"
Rupert Bates
1
isso faz com que o aplicativo não tenha nome nos aplicativos do telefone / tela principal
Nimitack
13

Escreva esta declaração em

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

se estender o uso de AppCompactActivity, getSupportActionbar()se estender o uso de atividade getActionBar(), pode dar

null pointer exception

usar android:label=""em AndroidManifest.xml para atividade também funciona, mas seu aplicativo não aparecerá emRecently used apps

Manohar Reddy
fonte
9

você tem duas opções:

primeiro:

getActionBar().setDisplayShowTitleEnabled(false);

Se usign getActionBar()produziu exceção de ponteiro nulo, você deve usar getSupportActionBar()

Second

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

ou

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

eu uso este código no manifesto do aplicativo

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

meu arquivo de logotipo tem 200 * 800 pixels e uso este código na activity.java principal

getActionBar().setDisplayShowTitleEnabled(false);

vai funcionar corretamente

Milaaaad
fonte
6

Eu tentei isso. Isso vai ajudar -

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

getSupportActionBar deve ser chamado após setSupportActionBar, configurando assim a barra de ferramentas, caso contrário, NullpointerException porque não há barra de ferramentas definida. Espero que isto ajude

Kenobiwan
fonte
5

Você pode alterar o estilo aplicado a cada atividade ou, se quiser apenas alterar o comportamento de uma atividade específica, pode tentar o seguinte:

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

Para exibir o título na barra de ações, defina as opções de exibição em onCreate ()

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

Para ocultar o título na barra de ações.

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

Detalhes aqui .

Siqi Liu
fonte
3

A única coisa que realmente funcionou para mim foi adicionar:

<activity 
    android:name=".ActivityHere"
    android:label=""
>
ShiftlessAndreas
fonte
bem, foi a resposta "errada", porém me ajudou com um caso semelhante :)
Javier
1
Não faça isso, pois seu aplicativo
travará
3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

espero que isso ajude

MeshPadukka
fonte
2

Use o seguinte:

requestWindowFeature(Window.FEATURE_NO_TITLE);
Vivek
fonte
Você não pode fazer isso se estiver usando a ActionBar. Se você tentar fazer isso, o aplicativo travará imediatamente ao abrir.
Christopher Perry,
@ChristopherPerry não é verdade. você pode usar isso para remover a barra de ação no código, desde que faça isso antes de chamar setContentView.
numan salati
entretanto, isso está removendo a barra de ação inteira em vez de apenas seu título!
bofredo
2

Se você quiser fazer isso apenas para uma atividade e talvez até mesmo dinamicamente, você também pode usar

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

como solução alternativa, basta adicionar esta linha caso você tenha ações / barras de ferramentas personalizadas

this.setTitle("");

em sua atividade

Mihsen
fonte
1

Embora todos sejam aceitáveis, se sua atividade contiver apenas uma atividade principal, você pode editar da seguinte res\values\styles.xmlforma:

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

Eu atualizei parente adicionei a propriedade .NoActionBar ao tema Light do Android Studios Create Blank ApplicationWizard.

eyoung100
fonte
Isso desativará toda a barra de ação, não apenas o título. E se você quiser criar uma barra de ação em branco, terá que fazê-lo para cada visualização.
AlwaysConfused de
1

Basta estender seu arquivo java de AppCompatActivitye fazer o seguinte:

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");
HarsH
fonte
0

Em sua página manifest.xml, você pode fornecer o endereço para o rótulo de sua atividade. o endereço está em algum lugar em seus valores / strings.xml. então você pode alterar o valor da tag no arquivo xml para nulo.

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

Eu sou novo no Android, então talvez eu esteja errado ... mas para resolver esse problema, não podemos simplesmente ir ao manifesto e remover o rótulo de atividade

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

        **android:label="" >**

Funcionou para mim ....

Ebin Xavier Jose
fonte
-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");
Joe Lewis
fonte
3
@Matteo Embora possa funcionar, certamente é incompleto e não é a maneira certa de fazê-lo. Na verdade, ele não remove o texto do título, apenas o define como "", para que você não possa vê-lo.
usuário 1234