Como alterar o tamanho do texto da barra de ferramentas?

92

Quero alterar o tamanho do texto em Toolbar. Porque no meu aplicativo, o Toolbartexto tem tamanhos diferentes tanto no modo paisagem quanto no modo retrato.

É possível alterar o tamanho do texto do texto em Toolbar?

Apurva
fonte

Respostas:

283

Use app:titleTextAppearance:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:id="@+id/toolbar"
    app:titleTextAppearance="@style/Toolbar.TitleText" />

e substituir o tamanho padrão do título em um estilo personalizado:

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">18sp</item>
</style>

Resultado:

Captura de tela

Vukašin Manojlović
fonte
Funciona, obrigado pela solução! Economizei muito do meu tempo!
hetsgandhi
23

por exemplo, esta sua barra de ferramentas

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:gravity="center"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

você pode simplesmente adicionar esta visão

    app:titleTextAppearance="@style/yourstyle"

style.xml

  <style name="yourstyle" parent="@style/Base.TextAppearance.AppCompat.Title">
    <item name="android:textSize">20sp</item>
</style>

Curtiu isso...

massaimara98
fonte
por algum motivo android:gravity="center"não define o alinhamento centralizado para mim ....: - /
Mobigital
5

Você pode adicionar um TextViewà sua barra de ferramentas e personalizar como quiser:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textSize="25sp"/>
</android.support.v7.widget.Toolbar>
Simas
fonte
4
Esta parece ser uma resposta adequada a aplicativos que suportam API <21. o titleTextAppearance é uma boa solução, mas só funciona com API 21 e superior. No entanto, existem algumas complexidades com as quais precisamos lidar com essa solução. Se você estiver usando SearchView, a versão expandida da visualização não se estenderá até a extremidade esquerda. Em vez disso, ele somente se estenderá até a borda direita da visualização de texto do título recém-adicionada. Portanto, você terá que fazer alguma personalização lá, mas novamente, este é um caso específico. Em um sentido geral, esta é uma boa solução para qualquer versão de plataforma.
Deepak GM
3

Experimente isto em onCreate:

android.support.v7.app.ActionBar actionbar = getSupportActionBar();
TextView textview = new TextView(MainActivity.this);
RelativeLayout.LayoutParams layoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

textview.setLayoutParams(layoutparams);
textview.setText(getString(R.string.your_string));
textview.setTextColor(Color.WHITE);
textview.setTextSize(18);

actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(textview);

Isso foi retirado de Android-Examples.com .

MorZa
fonte
3

[Optional steps 1 & 2)

  1. Coloque seu arquivo de fonte na pasta "Project / app / src / main / assets / fonts /".

Em seguida, crie um objeto Typeface a partir do arquivo de fonte como:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Agora, pegue o item filho (visão de texto do título da barra de ferramentas) da barra de ferramentas existente, a barra de ferramentas padrão e passe o objeto de tipo de letra que criamos acima.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Finalmente, altere o tamanho do texto da visualização do texto do título da barra de ferramentas
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size
OMi Shah
fonte
2
Bem-vindo ao SO! Adicione alguma descrição para apoiar sua resposta.
Mahib de
1
essa resposta veio em postagens de baixa qualidade no SO .... Você poderia adicionar algum comentário à sua resposta? Explique sua lógica e dê um pequeno comentário sobre o que seu código pretende fazer. Isso ajudará o OP, mas também servirá como comentário para futuros usuários
Ram Ghadiyaram
Se você tiver o ícone de navegação, deve usar getChildAt (1) :)
Gabor