2015-06-05 32 views
0

我搜索了一個解決方案,有些人建議我包括當我設置了操作欄標題這樣的空白:如何添加填充到動作條項目

actionBar.setTitle(" Ribbit"); 

它工作正常,像這樣但我想知道是否有更好的方法實現這一點,例如在某處添加android:padding xml屬性。

+0

你的意思是你想要中心標題的actionBar? –

回答

1

最好的方法是使用Material Design Toolbar小部件。

創建工具欄app_bar.xml文件,你可以給你想要的名字。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

    <!-- This textView will act as Title of page which you can make it Center or change padding/margin to change its position --> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:paddingTop="0dp" 
    android:text="Home" 
    android:layout_gravity="center" 
    android:id="@+id/toolbar_title" /> 
</android.support.v7.widget.Toolbar> 

確保,你在styles.xml選擇的主題與

"Theme.AppCompat.NoActionBar" 

,你需要在你mainActivity.xml佈局文件初始化此工具欄,對於包括這個,

<include 
     android:id="@+id/app_toolbar" 
     layout="@layout/app_toolbar"/> 

然後在MainActivity中,您需要創建Toolbar工具欄的實例。然後,經過的setContentView() 加上與您

toolbar = (Toolbar) findViewById(R.id.app_toolbar); 
    setSupportActionBar(toolbar); 

下確保禁用

ActionBar actionBar = getSupportActionBar();  
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setDisplayShowHomeEnabled(false); 

因此它不會複製工具欄的標題和繼承一個從應用程序。

+0

謝謝Ajay的詳細和很好解釋的答案。我一定會嘗試這種方法!我假定工具欄小部件會自動將必要的填充添加到菜單項中。 –

+0

是的,它會自動執行,但如果需要,您可以將自己的textView作爲工具欄的標題,如上面的示例所示。 –

1

它工作正常,像這樣的,但我不知道是否有實現這一目標,例如添加了Android更好的辦法 :地方填充XML 屬性。

更好的辦法是確保爲您ActionBar的自定義佈局(圖)(而現在它應該因爲動作條被稱爲工具欄已經過時了)。

使用自定義佈局,您可以根據需要設置您的ActionBar風格。可能性是無止境的。 Here是您可以從頭開始的一點。

+0

謝謝你Ragnar你的答案!該鏈接絕對非常有幫助! :) –