中心在工具栏中对齐标题,并在Android应用中以编程方式设置导航图标?

时间:2015-12-31 08:10:35

标签: android android-actionbar toolbar

我在我的活动中使用工具栏作为我的操作栏,我想中心对齐标题。我也设置了一个导航图标,标题正对齐中心。它将导航图标视为不同的部分,并根据剩余宽度对齐中心。这是我的工具栏xml

<android.support.v7.widget.Toolbar
android:id="@+id/main_activity_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<LinearLayout
        android:id="@+id/titlecontainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:orientation="vertical"
        >
 <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/title"
        android:textColor="#ffffff"
        android:textSize="18sp" />


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/titlesupport"
        android:layout_gravity="center_horizontal"
        android:textColor="#ffffff"
        android:textSize="10sp" />

    </LinearLayout>
 </RelativeLayout>

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

这就是我在我的活动oncreate中设置工具栏和标题的方式

mToolbar = (Toolbar) findViewById(R.id.main_activity_toolbar);
        setSupportActionBar(mToolbar);
        mToolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
TextView title = (TextView) mToolbar.findViewById(R.id.title);
        title.setText("MY TITLE");

我确信这是一个非常基本的东西我想念但是我已经查看了所有的答案并尝试了许多设置而没有结果。

编辑我还从menu_main中删除了设置菜单图标,现在它已空白

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"      tools:context=".MainActivity">
</menu>

3 个答案:

答案 0 :(得分:0)

您缺少文本视图的重力属性。 将 TextView的宽度更改为match_parent并将重力添加到居中。还将线性布局的宽度更改为match_parent

<LinearLayout
    android:id="@+id/titlecontainer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:orientation="vertical">
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center" 
    android:id="@+id/title"
    android:textColor="#ffffff"
    android:textSize="18sp" />
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/titlesupport"
    android:gravity="center"
    android:textColor="#ffffff"
    android:textSize="10sp" />
</LinearLayout>

希望它有所帮助.. !!

答案 1 :(得分:0)

对于那些只有导航图标(没有菜单图标)时仍然卡住的人

我使用setContentInsetsAbsolute在右边创建内容插图,使用

创建与左边相同的宽度
toolbar.setContentInsetsAbsolute(0,toolbar.getContentInsetStartWithNavigation());

如果以编程方式包含导航图标,则在包含导航图标后也设置此项。

答案 2 :(得分:-2)

<android.support.v7.widget.Toolbar
    android:id="@+id/main_activity_toolbar""
    android:layout_height="wrap_content"
    android:layout_width="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Test Alignment"
        android:gravity = "center"
        android:id="@+id/title" />

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