我如何多线化CollapsingToolbarLayout的扩展标题?

时间:2015-07-15 17:56:11

标签: android android-layout android-collapsingtoolbarlayout android-design-library

我的问题是下一个问题。我会使用相对较大的文本作为CollapsingToolbarLayout标题,所以我需要将其显示为多行模式。当我尝试通过setExpandedTitleTextAppearance()方法更改文本外观时,它不起作用。我使用的代码是下一个:

<style name="ToolbarExpandedTitle">
    <item name="android:textSize">48sp</item>
    <item name="android:shadowColor">#ffffff</item>
    <item name="android:textColor">@android:color/white</item>
    <item name="android:singleLine">false</item>
    <item name="android:minLines">3</item>
    <item name="android:lines">4</item>
    <item name="android:maxLines">5</item>
</style>

enter image description here

我希望在多行上看到标题,而不是显示省略号。

5 个答案:

答案 0 :(得分:17)

结帐此库multiline-collapsingtoolbar

  

multiline-collapsingtoolbar是替代品   来自Android设计支持库的CollapsingToolbarLayout   可以处理多行标题(目前硬编码为最多3个   在扩展状态下。折叠工具栏时,较低   标题的行渐渐消失,只留下顶行。

作为设计支持库,它应该与API 7(Android 2.1)及以上

兼容

答案 1 :(得分:6)

随着新的Material Design 1.2.0-alpha05的发布,此功能已作为本机功能实现。

版本为(1.2.0-alpha05)之后的实现材料库:

implementation 'com.google.android.material:material:1.2.0-alpha05'

将此行添加到折叠工具栏布局的XML中(此示例中,我最多设置2行)

app:maxLines="2"

或者您可以通过编程方式设置

 collapsingtoolbar.setMaxLines(2);

答案 2 :(得分:4)

目前似乎不支持此功能。可能的解决方法是使用您自己的视图并在展开时隐藏工具栏标题。这样做的一种方法是:

https://stackoverflow.com/a/31529101/834692

希望未来版本的支持库会添加此功能。

答案 3 :(得分:4)

更简单的方法是添加添加到CollapsingToolbar的自定义布局并固定它。

需要注意的一些注意事项:

  • 工具栏应具有折叠内容的高度,这可以通过代码或XML来完成。
  • 要隐藏的元素必须在布局XML文件中的工具栏定义之前
  • 要保持可见的元素必须在布局XML文件中的工具栏定义之后。

查看完整代码here。最终结果是:

Multiline toolbar

答案 4 :(得分:2)

我在这个图书馆的帮助下做到了这一点

https://github.com/opacapp/multiline-collapsingtoolbar

将库添加到项目中 并将CollapsingToolbarLayout替换为net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout