如果启用了“后退”按钮,则工具栏标题不会在中心正确显示

时间:2016-08-05 06:50:53

标签: android xml android-toolbar

我想在中心显示toolbar的标题,因此我使用自定义textview来显示标题:

       <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="Title"
            android:textColor="@android:color/white"
            android:textSize="25sp"
            android:textStyle="bold" />
    </android.support.v7.widget.Toolbar>

Java代码:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    TextView title = (TextView) toolbar.findViewById(R.id.toolbar_title);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    title.setText("Title");
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed();
        }
    });

结果:

enter image description here

如果我启用工具栏的后退按钮,则标题文本无法正确显示在中心。

如果没有启用工具栏的后退按钮,那么工作正常。

如果

getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setDisplayShowHomeEnabled(false);

结果:

enter image description here

现在,我想在中心显示标题,同时启用工具栏的后退按钮。这该怎么做 ?任何帮助

2 个答案:

答案 0 :(得分:4)

1)您需要删除此

title.setText("Title");

因为已经存在于xml文件中。

2)使用

getSupportActionBar().setDisplayShowTitleEnabled(false);

3)设置TextView

的布局重力
android:layout_gravity="center"

修改

同时将TextView的高度和宽度更改为wrap_content

答案 1 :(得分:0)

我想这个问题最简单的解决方案是将TextView的宽度和高度都更改为wrap_content。希望对您有所帮助。