2016-12-16 140 views
1

我一直在關注如何創建應用工具欄的official documentation。本教程說,下面的說明後,Android應用的工具欄標題不是垂直居中

「你的應用程序現在有一個基本的操作欄。默認情況下,操作欄 包含應用程序和溢出菜單的只是名字。」

恩,我不,它看起來像這樣: enter image description here

你可以從這個圖片看到,我已經做了一些造型,以獲得顏色我想他們,我我添加了一個菜單項,只是爲了看看它是否正確顯示。稍後我會研究如何修復圖標的顏色。

我的問題是,正如你所看到的,應用標題不是垂直居中。它離頂部太近了。這讓我很不高興,因爲據我所知,它應該是自動對中的,我不知道爲什麼我的不是,但是我仍然試圖用自己的風格來解決這個問題,但絕對沒有成功。沒有樣式屬性似乎對工具欄標題的填充有任何影響。我可以添加填充到整個工具欄,但也會影響菜單項,我不希望它。

我的實現看起來是這樣的:

activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:fitsSystemWindows="true"> 
      <android.support.v7.widget.Toolbar 
       android:id="@+id/main_activity_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       style="@style/MyToolbarStyle" 
       app:theme="@style/MyToolbarTheme" /> 
    </LinearLayout> 

styles.xml:

<resources> 

<!-- Base application theme. --> 
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="MyToolbarStyle" parent="Base.Widget.AppCompat.Toolbar"> 
    <item name="android:elevation">4dp</item> 
    <item name="android:background">@color/colorPrimary</item> 
</style> 

<style name="MyToolbarTheme" parent="Base.Widget.AppCompat.Toolbar"> 
    <item name="android:textColorPrimary">#ffffff</item> 
</style> 

理想的情況下,如果有人可以解釋我出錯的地方,因此我的應用程序標題不是垂直居中,這很棒,但如果不是,有人可以告訴我如何爲工具欄中的應用程序標題添加邊距或填充我可以嘗試自己居中?

P.S.這不是this questio的重複 - 該問題涉及更復雜的自定義工具欄。我應該是默認的實現。

更新: 按照要求,這裏是我的MainActivity.java文件的代碼:

package com.example.samplescanner; 


import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuInflater; 

public class MainActivity extends AppCompatActivity { 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar MainActivityToolbar = (Toolbar) findViewById(R.id.main_activity_toolbar); 
     setSupportActionBar(MainActivityToolbar); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu_items, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 
} 
+0

我覺得你在工具欄或外部佈局上缺少'android:fitsSystemWindows =「true」' –

+0

你是否在任何地方設置標題? –

+0

換句話說,它可能是居中,但整個工具欄在狀態欄的後面 –

回答

1

我無法從Base.Widget.AppCompat.Toolbar找到問題的確切來源,但它會改變的的GravityToolbar。從ThemeOverlay.AppCompat.Dark.ActionBar,而不是繼承:

<style name="MyTheme.ToolbarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:background">@color/colorPrimary</item> 
    <item name="android:elevation">4dp</item> 
</style> 

他們你所提到的文檔中使用ThemeOverlay.AppCompat.ActionBar,但Dark版本應該設置textColorPrimary屬性爲您服務。