web-dev-qa-db-fra.com

Comment changer la taille du texte du titre dans la barre d'actions?

Il y a un ActionBar sur chaque Android 4.0, et elle a un titre. J'ai besoin de réduire cette taille. Mais je ne comprends pas comment je peux le faire, parce que ActionBar ne fournit pas de méthodes publiques pour cela. Remarque: Je ne veux pas utiliser des vues personnalisées.

38
malcoauri

En fait, vous pouvez faire ce que vous voulez pour personnaliser l'ActionBar. Cela doit être fait à travers le thème. Vous pouvez faire quelque chose comme ça:

<style name="Theme.YourTheme" parent="Android:style/Theme">
    <item name="Android:actionBarStyle">@style/Theme.YourTheme.Styled.ActionBar</item>
</style>

<style name="Theme.YourTheme.Styled.ActionBar">
    <item name="Android:titleTextStyle">@style/Theme.Viadeo.Styled.YourTheme.TitleTextStyle</item>
</style>

<style name="Theme.YourTheme.Styled.ActionBar.TitleTextStyle" parent="@Android:style/Widget.TextView">
    <item name="Android:textSize">12sp</item>
</style>
49
Aurélien Guillard

Vous pouvez toujours faire quelque chose comme ça:

ActionBar actionBar = getActionBar();
actionBar.setTitle(Html.fromHtml("<small>YOUR TITLE</small>"));
20
Matt W

sur mon système, res/styles AppTheme a une note disant

<!-- All customizations that are NOT specific to a particular API-level can go here. -->

et c'est le style indiqué dans AndroidMainfest.xml. J'ai ajouté

<item name="Android:textSize">15sp</item>

et cela a fonctionné et je préfère faire cela plutôt qu'une barre d'action personnalisée.

7
steven smith

J'ai suivi cette méthode pour ignorer la création de style personnalisé:

  1. Créez une mise en page personnalisée avec la taille de texte requise et
  2. appliquez cela à votre barre d'action.

1) Créez un fichier de mise en page (titlebar.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:orientation="vertical">

    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:id="@+id/action_bar_title"
        Android:text="@string/app_name"
        Android:textColor="@color/colorPrimary"
        Android:textSize="24sp" />
</LinearLayout>

Définissez ici la taille de texte requise.

2) MainActivity.Java

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); //bellow setSupportActionBar(toolbar);
    getSupportActionBar().setCustomView(R.layout.titlebar);

j'espère que cela t'aides.

5

La taille du texte en Android ActionBar est standard .

Depuis ICS, Android développe maintenant une norme pour que les applications suivent (espérons-le) les mêmes directives d'interface utilisateur et les mêmes principes de conception.

http://developer.Android.com/guide/practices/ui_guidelines/index.html

C'est pourquoi vous ne pouvez pas le changer.

Cependant , si vous voulez toujours le faire, vous pouvez utiliser un thème personnalisé ou peut-être implémenter ActionBar (un fork) et modifier ses sources: https://github.com/johannilsson/Android-actionbar pour obtenir un contrôle maximal.

3
shkschneider