Estou tentando criar um aplicativo simples usando a biblioteca android-support-v7: 21.
Trechos de
código:
MainActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
}
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:fitsSystemWindows="true" />
</LinearLayout>
Mas, em vez de "Meu título" na barra de ferramentas% application name% é mostrado.
Parece que o setTitle
método não tem efeito.
Eu gostaria de mostrar "Meu título".
UPD:
Antes, styles.xml
era:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
</style>
Então, eu pensei que a barra de ação não é usada. Eu adiciono NoActionBar
ao estilo pai:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
</style>
Mas o problema não está resolvido.
android
toolbar
android-support-library
Krossovochkin
fonte
fonte
Respostas:
Encontrou a solução:
Ao invés de:
Eu usei:
E isso funciona.
fonte
getSupportActionBar().setTitle("My title");
pode produzir 'java.lang.NullPointerException'setSupportActionBar(mToolbar)
, é claro que receberá uma exceção nula, mas se você o chamou, ignore esta mensagem. Basta ler - developer.android.com/training/appbar/setting-up.htmlPara quem precisar configurar o título pela barra de ferramentas algum tempo depois de configurar o SupportActionBar, leia isto.
A implementação interna da biblioteca de suporte apenas verifica se a Barra de Ferramentas possui um título (não nulo) no momento em que a SupportActionBar está configurada. Se houver, esse título será usado em vez do título da janela. Você pode definir um título fictício enquanto carrega o título real.
mais tarde...
fonte
this.setTitle("Title")
, ondethis
- é uma referência a uma atividade.A resposta acima é totalmente verdadeira, mas não está funcionando para mim.
Resolvi meu problema com as seguintes coisas.
Na verdade, meu XML é assim:
Eu tentei todas as opções e, afinal, acabei de remover
CollapsingToolbarLayout
porque não preciso usar nesse particular.XML
Então, meu XML final é como:Agora você tem que usar
setTitle()
como a resposta acima:Agora, se você quiser usar
CollapsingToolbarLayout
eToolbar
juntos, então você tem que usarsetTitle()
deCollapsingToolbarLayout
Que isso o ajude. Obrigado.
fonte
CollapsingToolbarLayout
resolvido o problemaCollapsingToolbarLayout
?Simplesmente você pode alterar qualquer nome de atividade usando
fonte
title = "Title"
no Kotlin ou talvezthis.setTitle("Title")
em Java.Tente isso, você pode definir o título diretamente no XML:
fonte
Para definir o título para cada título do fragmento Navbar
fonte
Tente isso .. esse método funciona para mim .. !! espero que ajude alguém .. !!
Para exibir o logotipo na barra de ferramentas, tente o trecho abaixo. // Definir drawable
Deixe-me saber o resultado.
fonte
fonte
Consulte https://code.google.com/p/android/issues/detail?id=77763 . Aparentemente, deveria funcionar assim. Depois que você chama a chamada de
setSupportActionBar()
método, é de responsabilidade do delegado da ActionBar encaminhar a chamada para a exibição correta.fonte
Eu tentei renomear a barra de ferramentas do fragmento
Isso me ajudou, espero ajudar outra pessoa
Captura de tela:
fonte
Não é apenas sobre
.setTitle
mais métodos da Barra de ferramentas de suporte (Appcompat v7)
onCreate
funcionam apenas comgetSupportActionBar().method()
e não trabalhe com
mToolbar.method()
exemplos:
embora próximos métodos funciona bem, sem
getSupportActionBar()
noonCreate
Problema apenas com
onCreate
evento, você ainda pode usarmToolbar.setTitle()
mais tarde, em vez de irritantegetSupportActionBar().setTitle()
, por exemplo, se você adicionar isso,onCreate
ele funcionará (porque será executado mais tarde, depoisonCreate
)Prefiro usar esta solução https://stackoverflow.com/a/35430590/4548520 do que https://stackoverflow.com/a/26506858/4548520 porque se você alterar o título várias vezes (em diferentes funções), é mais confortável usar
mToolbar.setTitle()
mais degetSupportActionBar().setTitle()
um e você não vê uma notificação irritante sobre exceção nula, como acontece comgetSupportActionBar().setTitle()
fonte
Para quem precisar configurar o título pela barra de ferramentas algum tempo depois de configurar o SupportActionBar (@sorianiv) E você
Toolbar
estiver dentro de umCollapsingToolbarLayout
, leia o seguinte:Então depois,
fonte
O título do aplicativo não será exibido como título padrão em todas as atividades. Você pode inserir um título diferente em todas as atividades. No arquivo de atividades abaixo do onCreate, basta colar uma única linha para definir o título,
Basta alterar o texto "Your Title Here" para o seu texto.
fonte
Simplesmente use isso no seu adaptador, Onde MainActivity é sua AppCompactActivity. Ligue de qualquer lugar.
fonte
Eu fiz funcionar usando -
fonte
post
lo se estiver alterando o título no thread da interface do usuário, que acho que é 90% dos casos.Se você estiver usando
CollapsibleToolbarLayout
juntoToolbar
, precisará definir o título nos dois layoutsdefina sua barra de ferramentas como barra de ação no
onCreate
métodoMais tarde, basta atualizar o título da barra de ferramentas usando o
setTitle
métodofonte
Tente o seguinte:
Código XML
Código Java
fonte
Se seu objetivo é definir uma sequência estática na barra de ferramentas, a maneira mais fácil de fazer isso é simplesmente definir o rótulo da atividade no AndroidManifest.xml:
A barra de ferramentas receberá essa sequência sem nenhum código. (funciona para mim com as bibliotecas da v27.)
fonte
Eu tenho um comportamento estranho que pode ajudá-lo.
Isso está funcionando, mas não tem efeito apenas no onCreate:
Tente usar isso no onCreate:
fonte
Para alterar o título para cada atividade diferente
fonte
fonte
Embora não seja imediatamente relevante para essa configuração em particular, descobri que remover "CollapsingToolbarLayout" do XML que estava envolvendo a barra de ferramentas dentro de um AppBarLayout fazia tudo funcionar.
Então, é isso:
Em vez disso:
Em seguida, defino o título no onCreate da atividade, antes que setSupportActionBar () seja chamado.
fonte
Isso pode ser feito configurando o
android:label
atributo de sua atividade noAndroidManifest.xml
arquivo:E adicione esta linha ao onCreate ():
fonte
Certifique-se de adicionar esta opção:
fonte
A resposta está na documentação (que você pode encontrar aqui ):
Essa é a solução que você realmente encontrou. Apenas pensei em fazer uma referência à documentação oficial (que aparentemente poucos tendem a ler).
fonte
No Kotlin, você pode fazer isso:
fonte
Isso está acontecendo porque você está usando a Barra de ferramentas e a ActionBar. Agora, como você deseja usar a Barra de Ferramentas como uma barra de ação, a primeira coisa a fazer é desativar a barra de ação fornecida pela decoração.
A maneira mais fácil é prolongar o seu tema
Theme.AppCompat.NoActionBar
.fonte