操纵工具栏的标题和其他元素

Manipulating the Toolbar's title and other elements

我正在使用 AppCompat 工具栏,它在大多数情况下都很棒。然而,处理标题一直是一场噩梦。它默认设置为应用程序名称,我找不到隐藏它的方法。

我试图隐藏它,以便我可以添加自己的文本视图,这样我就可以将标题文本正确对齐到当前 left-aligned 但垂直居中的顶部。如果我不使工具栏高度比平时长,我不知道如何将它定位在正常位置。

你们是如何管理工具栏的?如何将标题文本对齐到标题通常所在的顶部位置?

编辑:我已经添加了它的外观截图。我现在试图让我的项目保密,所以我删除了所有识别元素。但请注意 D(标题)未与顶部对齐。

要更改工具栏标题试试这个

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
 setSupportActionBar(toolbar);
 getSupportActionBar().setTitle("Text");

对于工具栏的自定义布局试试这个

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
getSupportActionBar().setCustomView(R.layout.actionbar); //replace with your custom toolbar title

您正在使用支持 v7 AppCompat 的工具栏 之后将该工具栏设置为操作栏,然后将操作栏标题设置为简单标题,或者您想在工具栏内设置自定义布局,然后与我们在操作栏中所做的相同。因此现在您的工具栏作为操作栏工作..

请参阅下面的 ActionBarActivity 示例。

 mToolbar = (Toolbar) findViewById(R.id.toolbar);
 setSupportActionBar(mToolbar);
 getSupportActionBar().setTitle("Your Title");

现在,如果您对操作栏相关的方法进行任何操作,它最终都会在工具栏中受到影响。

如果您将工具栏设置为操作栏 setSupportActionBar(toolbar); 然后您可以使用

简单地禁用标题
getSupportActionBar().setDisplayShowTitleEnabled(false);

并在工具栏布局中添加一个文本视图作为标题,因为工具栏也是一个视图。见下文

<LinearLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <android.support.v7.widget.Toolbar
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/material_blue"
            android:elevation="5dp"
            android:minHeight="?attr/actionBarSize"
            android:theme="@style/ThemeOverlay.AppCompat.Dark"
            app:theme="@style/ToolbarCustomIconColor" >

            <TextView
                android:id="@+id/textview_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:gravity="center"
                android:text="@string/app_name"
                android:textColor="@android:color/white" />
        </android.support.v7.widget.Toolbar>
    </LinearLayout>

这样您就可以在任何地方安排您的标题并进行相应的自定义。