2015-08-22 90 views
12

如何將工作室的標題居中放置在工具欄中,使其與工具欄後退按鈕一起顯示?如何將標題居中在工具欄中(即使顯示了工具欄後退按鈕)

目前,我發現的最佳解決方案是如果顯示後退按鈕,則有60dp的餘量。

+0

我想你會需要爲你的動作條自定義視圖。 –

+0

我試圖在工具欄視圖中使用layout_gravity設置爲居中來添加TextView。當顯示工具欄後退按鈕時它不起作用。 –

+0

您可以創建自定義視圖(包含按鈕(後退)和文本視圖(標題)的水平線性佈局)並居中放置。 –

回答

2

我不知道最佳做法如何,但您可以使用工具欄內的自定義後退按鈕嘗試此解決方法。佈局代碼:

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:contentInsetLeft="0dp" 
    app:contentInsetStart="0dp"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <ImageView 
      android:id="@+id/toolbar_back_button" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="20dp" 
      android:src="@drawable/ic_back" /> 

     <TextView 
      android:id="@+id/toolbar_title" 
      style="@style/TextAppearance.Widget.AppCompat.Toolbar.Title" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" /> 

    </RelativeLayout> 

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

和活動代碼:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    TextView toolbarTitle = (TextView) findViewById(R.id.toolbar_title); 
    setSupportActionBar(toolbar); 

    ImageView backButton = (ImageView) findViewById(R.id.toolbar_back_button); 
    backButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      finish(); 
     } 
    }); 
4

時,只使用後退按鈕,這爲我工作。 在XML:

<android.support.v7.widget.Toolbar 
    android:id="@+id/tb_title_container" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/white"> 

    <TextView 
     android:id="@+id/tv_title" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:textAllCaps="true" 
     android:textColor="#2B2B2B" 
     android:textSize="14sp" /> 

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

在Java代碼:

int contentInsetStartWithNavigation = mTitleContainer.getContentInsetStartWithNavigation(); 
mTitleContainer.setContentInsetsRelative(0, contentInsetStartWithNavigation); 
+0

可以確認這個作品很棒。 – Travis