Barre d’outils Android: petit texte de titre en mode paysage

Je teste le nouveau thème Toolbar et AppCompat sur Android et rencontre un problème. Le texte du titre de ma barre d’outils est de taille normale en mode portrait, mais il est devenu plutôt petit en mode paysage, bien que je n’ai rien fait dans le code pour modifier la taille du texte du titre. Voici les captures d’écran:

PortraitPaysage

activity_main.xml:

           

styles.xml:

    false  @color/primary @color/primary_dark @color/accent      true   

J’ai essayé de définir android:titleTextAppearance de la barre d’outils mais le style n’était pas appliqué. Puis j’ai réalisé que j’utilisais le thème AppCompat, donc j’ai utilisé app:titleTextAppearance et le style est maintenant appliqué. Il semble que les petites lettres du paysage posent problème dans le style AppCompat.Toolbar.Title , alors je l’ai remplacé pour définir la taille de la police manuellement. Le code final:

Barre d’outils XML:

  

Style de barre d’outils:

  

AOSP Issue # 170707 a été écrit concernant le changement de taille du texte pour le titre et le sous-titre. La réponse du membre du projet était “Fonctionne comme prévu. Identique au comportement du framework”. Bien que je ne trouve pas que la modification de la taille du texte soit le comportement par défaut souhaitable, il semble que les ingénieurs d’AppCompat aient dû maintenir la cohérence avec le comportement de la structure (erronée). Les développeurs sont alors laissés pour remplacer les styles par défaut comme décrit dans la réponse de Chilly Chan.

Ajouts à la réponse de Chilly Chan:

1) La taille du texte des sous-titres peut être contrôlée de la même manière en définissant un autre style dérivé de TextAppearance.Widget.AppCompat.Toolbar.Subtitle.

2) Les valeurs par défaut pour la taille du titre / sous-titre en orientation portrait sont 20dp / 16dp (sur mon Galaxy S3, 4.4.2.). L’exemple de Chilly Chan spécifie “17sp”. Utilisez “sp” uniquement si vous souhaitez que le paramètre de préférence utilisateur affecte la taille du titre / sous-titre.

Je cherchais une solution sans barre d’outils personnalisée , mais avec un style personnalisé et ce code a fait l’affaire:

styles.xml

    

AndroidManifest.xml

   

Où le MainActivity étend AppCompatActivity; testé sur API 19, 22 et 23.

Essayez d’append ceci à votre section de barre d’outils sous le fichier activity_main.xml.

android: minHeight = “? android: attr / actionBarSize”

J’ai également remarqué que vous utilisez une barre d’action sombre standard, que vous proposez d’utiliser un thème sans barre d’action, une barre d’outils définie

  Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar);  

Je pense que cela a à voir avec certains changements de mise en page effectués lorsque vous faites pivoter l’appareil, il semble que vous pouvez empêcher le redimensionnement en ajoutant quelque chose comme

  android:configChanges="orientation|screenSize" 

dans AndroidManifest.xml pour l’activité dans laquelle vous vous trouvez. Comme toujours, Android: configChanges a plus d’implications, donc ne devrait être utilisé que si vous en avez vraiment besoin 🙂