Comment changer la police et la taille de CollapsingToolbarLayout?

Je veux changer la taille de police CollapsingToolbarLayout et sa police. Comment puis-je y arriver?

entrer la description de l'image ici

Fondamentalement, vous pouvez définir TextAppearance dans votre TextAppearance XML.

       

À partir du code ci-dessus, vous avez vu cette partie

 app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title" 

Spécifiquement la dernière partie

 .Title 

entrer la description de l'image ici

Si vous vous en souvenez, cela est documenté dans la section Spécifications de conception matérielle dans Typhography. Vous pouvez changer cela en le style TextAppearance intégré disponible.

entrer la description de l'image ici

La deuxième étape consiste à utiliser la Roboto Font recommandée par Google. Le TextAppearance n’inclut pas ces fonts, nous devons donc l’append manuellement. Heureusement, il existe une ou plusieurs fonts Robot Gradle Base proposées par Typer . Avant d’utiliser la police, nous devons append une nouvelle dépendance dans notre build.gradle .

 dependencies { comstack 'com.elmargomez.typer:typerlib:1.0.0' } 

et définir la police dans notre CollapsingToolbar

 Typeface font = Typer.set(yourContext).getFont(Font.ROBOTO_MEDIUM); collapsingToolbar.setCollapsedTitleTypeface(font); collapsingToolbar.setExpandedTitleTypeface(font); 

Vous pouvez utiliser les nouvelles méthodes publiques, sur CollapsingToolbarLayout pour définir la police du titre réduit et développé, comme ceci:

 final Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/FrutigerLTStd-Light.otf"); collapsingToolbar.setCollapsedTitleTypeface(tf); collapsingToolbar.setExpandedTitleTypeface(tf); 

Cela semble avoir été ajouté à la bibliothèque de support de conception 23.1.0, et est un ajout très apprécié.

Vous pouvez faire quelque chose comme ça:

 mCollapsingToolbarLayout.setTitle(getTitle()); mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar); mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar); 

Le style textview correspondant pourrait être: 28sp # 000 bold

  

voir aussi ici pour référence.

On dirait que j’ai une solution:

 private void makeCollapsingToolbarLayoutLooksGood(CollapsingToolbarLayout collapsingToolbarLayout) { try { final Field field = collapsingToolbarLayout.getClass().getDeclaredField("mCollapsingTextHelper"); field.setAccessible(true); final Object object = field.get(collapsingToolbarLayout); final Field tpf = object.getClass().getDeclaredField("mTextPaint"); tpf.setAccessible(true); ((TextPaint) tpf.get(object)).setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Bold.ttf")); ((TextPaint) tpf.get(object)).setColor(getResources().getColor(R.color.ice)); } catch (Exception ignored) { } } 
  mCollapsingToolbar.setTitle(getTitle()); mCollapsingToolbar.setExpandedTitleTextAppearance(R.style.ExpandedAppBar); mCollapsingToolbar.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar);     

Référence ici CollapsingToolbarLayout setTitle ne fonctionne pas correctement

Changez la taille de la police ou le parent.

   

Le code est ici

   

Ajoutez ces lignes de code dans la présentation CollapsingToolbarLayout

  app:expandedTitleTextAppearance="@style/Toolbar.TitleText" app:collapsedTitleTextAppearance="@style/Toolbar.TitleText" 

Et le code qui est donné ci-dessous, dans style.xml

  

Pour append à toutes les réponses ici, cela n’a pas fonctionné pour moi en xml, peu importe où j’ai essayé de l’appliquer, dans AppTheme, en référence aux styles. J’utilise actuellement la bibliothèque de support 27.1.1

Cela n’a fonctionné que par programme.

 Typeface typeface = ResourcesCompat.getFont(this, R.font.my_custom_font); collapsingToolbarLayout.setCollapsedTitleTypeface(typeface); collapsingToolbarLayout.setExpandedTitleTypeface(typeface);