更新
在深入研究代码之前,让我们首先确定textSize 的CollapsingToolbarLayout。 Google 发布了一个名为material.io 的网站,该网站还解释了如何处理Typography 的最佳方法。
文章提到了“标题”类别,还解释了在sp中使用的推荐字体大小。
虽然文章从未提及推荐的CollapsingToolbarLayout's 扩展 大小,但库com.android.support:design 为我们的案例提供了TextAppearance。通过对源代码的一些挖掘,结果发现大小为34sp(文章中未提及)。
那么折叠后的尺寸呢?幸运的是文章提到了一些东西,它是20sp。
目前最适合collpased模式的TextAppearance是TextAppearance.AppCompat.Title,而我们的扩展模式TextAppearance是TextAppearance.Design.CollapsingToolbar.Expanded。
如果您观察我们上面的所有示例,所有示例都使用 REGULAR 版本的字体,可以肯定地说,Roboto regular 将完成任务,除非您有特定要求。
下载字体本身可能工作量太大,为什么不使用包含所有需要的 Roboto 字体的库呢?所以我介绍了一个用于 Roboto 的书法库,例如Typer.
dependencies {
implementation 'com.android.support:design:28.0.0'
implementation 'com.rhexgomez.typer:typer-roboto:2.0.0'
}
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:expandedTitleTextAppearance="@style/TextAppearance.Design.CollapsingToolbar.Expanded"
app:collapsedTitleTextAppearance="@style/TextAppearance.AppCompat.Title"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
Java
// Java example
CollapsingToolbarLayout collapsingToolbar = findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setCollapsedTitleTypeface(TyperRoboto.ROBOTO_REGULAR());
collapsingToolbar.setExpandedTitleTypeface(TyperRoboto.ROBOTO_REGULAR());
科特林
// Kotlin example
collapsing_toolbar.apply {
setCollapsedTitleTypeface(TyperRoboto.ROBOTO_REGULAR)
setExpandedTitleTypeface(TyperRoboto.ROBOTO_REGULAR)
}
这是 2019 年的更新,因为 Typer 库已更新!我也是图书馆的作者。