【问题标题】:Set toolbar title below the toolbar在工具栏下方设置工具栏标题
【发布时间】:2020-01-21 17:48:52
【问题描述】:

如何将工具栏标题放在不同的行上?

例如“Getting Started”标题及其副标题位于不同的行:

【问题讨论】:

    标签: android android-layout android-toolbar


    【解决方案1】:

    假设您使用的是android.widget.Toolbar,您正在寻找字幕。这可以在 XML 中设置:

    <Toolbar
        android:subtitle="@string/your_string_here"
        .../>
    

    或者在代码中:

    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setSubtitle(R.string.your_string_here);
    

    如果您使用提供默认工具栏的 AppCompat 主题,您可以通过getSupportActionBar() 访问它。这将返回 android.support.v7.app.ActionBar(或 androidx 等效项),但语法相同:

    ActionBar actionbar = getSupportActionBar();
    actionbar.setSubtitle(R.string.your_string_here);
    

    【讨论】:

    • 默认情况下,工具栏标题与工具栏放在同一行,但如何将其放在工具栏下方?
    【解决方案2】:

    您实际上可能想要一个折叠工具栏。看看here,那里也有示例代码

    否则你必须customise工具栏

    提示:工具栏也可以是一个容器。 Example

    【讨论】:

      【解决方案3】:

      您必须创建自定义工具栏,轻松创建自己的设计完美:

      <android.support.v7.widget.Toolbar
          android:id="@+id/toolbar_top"
          android:layout_height="wrap_content"
          android:layout_width="match_parent"
          android:minHeight="?attr/actionBarSize"
          android:background="@color/action_bar_bkgnd"
          app:theme="@style/ToolBarTheme" >
      
      
           <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Toolbar Title"
              android:layout_gravity="center"
              android:id="@+id/toolbar_title" />
      
      
          </android.support.v7.widget.Toolbar>
      

      这意味着您可以随意设置 TextView 的样式,因为它只是一个常规的 TextView。因此,在您的活动中,您可以像这样访问标题:

      Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
      TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);
      

      【讨论】: