Android App的工具栏标题不是垂直居中的

时间:2016-12-16 15:27:48

标签: android android-toolbar android-styles

我一直关注如何创建应用工具栏的official documentation。教程说,遵循说明后,

  

"您的应用现在有一个基本操作栏。默认情况下,操作栏   仅包含应用程序的名称和溢出菜单。"

好吧,我的不是,它看起来像这样: 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 n的副本 - 该问题涉及更复杂的自定义工具栏。我应该是默认的实现。

更新 根据要求,这里是我的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);
    }
}

1 个答案:

答案 0 :(得分:1)

我无法从Base.Widget.AppCompat.Toolbar找到问题的确切来源,但它会改变Gravity的{​​{1}}。继承自Toolbar

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属性。