对齐工具栏中心的文本

时间:2015-06-23 08:58:27

标签: android android-toolbar

在我的应用程序中,我使用的是Toolbar。现在我希望标题(标签)显示在工具栏的中心。当未显示主页按钮(后退按钮)时,标题位于中央,但是当后退按钮在那里时,文本从中心移动得更远。那我怎么能这样做呢?

XML

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_list_detail"
        style="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/green">

        <TextView
            android:id="@+id/tv_ld_header"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Hello"
            android:gravity="center"
            android:textColor="#fff"
            android:textSize="@dimen/textSize"
            android:textStyle="bold" />

</android.support.v7.widget.Toolbar>

代码

toolbar = (Toolbar) findViewById(R.id.toolbar_list_detail);
setSupportActionBar(toolbar);
tvHeader = (TextView) toolbar.findViewById(R.id.tv_ld_header);
//rlToolbar = (RelativeLayout) toolbar.findViewById(R.id.rl_toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final Drawable upArrow = getResources().getDrawable(R.drawable.back);
getSupportActionBar().setHomeAsUpIndicator(upArrow);

2 个答案:

答案 0 :(得分:3)

要在工具栏中使用自定义标题,您需要做的就是记住工具栏只是一个奇特的ViewGroup,因此您可以像这样添加自定义标题:

<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);

答案 1 :(得分:-2)

要使工具栏中的标题居中,您必须添加android:layout_gravity =&#34; center&#34;删除android:gravity =&#34; center&#34;改变android:layout_width =&#34; match_parent&#34;到android:layout_width =&#34; wrap_content&#34;在TextView中。

{{1}}