Je veux changer la taille de police CollapsingToolbarLayout
et sa police. Comment puis-je y arriver?
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
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.
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);