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?

Respostas:


216

Experimentar:

 getActionBar().setDisplayShowTitleEnabled(false);

Para v.7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);

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>

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.


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.


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

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


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();

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


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


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 .


3

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

<activity 
    android:name=".ActivityHere"
    android:label=""
>

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


2

Use o seguinte:

requestWindowFeature(Window.FEATURE_NO_TITLE);

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

1

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

this.setTitle("");

em sua atividade


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.


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(" ");

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>

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


-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.