【问题标题】:Android App's Toolbar Title is Not Centred VerticallyAndroid 应用工具栏标题未垂直居中
【发布时间】:2017-05-02 10:32:22
【问题描述】:

我一直在关注official documentation,了解如何创建应用工具栏。教程说,按照说明进行操作后,

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

好吧,我的没有,它看起来像这样:

正如您从这张图片中看到的那样,我已经做了一些样式来获得我想要的颜色,并且我添加了一个菜单项,只是为了看看它是否正确显示。稍后我会研究如何修复图标的颜色。

我的问题是,如您所见,应用标题没有垂直居中。它离顶部太近了。这让我很恼火,因为据我所知,它应该自动居中,我不知道为什么我的不是,但我仍然尝试使用样式自己解决这个问题,但绝对没有成功。没有样式属性似乎对工具栏标题的填充有任何影响。我可以为整个工具栏添加填充,但这也会影响菜单项,我不希望这样做。

我的实现如下所示:

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>

理想情况下,如果有人能解释我哪里出了问题,这样我的应用程序标题就不会垂直居中,那就太好了,但如果不是,有人能告诉我如何在工具栏中的应用程序标题,以便我自己尝试将其居中?

附:这不是 this question 的重复 - 该问题涉及更复杂的自定义工具栏。我的应该是默认实现。

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

【问题讨论】:

  • 我认为您在工具栏或外部布局上缺少android:fitsSystemWindows=“true”
  • 你在哪里设置标题?
  • 也就是说,它可能是居中的,但整个工具栏都在状态栏的后面
  • @cricket_007 我错过了那个设置,但即使现在我已经添加了它,问题仍然存在。我将使用完整的 activity_main.xml 代码更新我的代码。

标签: android android-toolbar android-styles


【解决方案1】:

我无法从Base.Widget.AppCompat.Toolbar 中找到问题的确切来源,但它改变了ToolbarGravity。改为从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 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-20
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2023-03-28
    • 2017-12-02
    • 2016-09-16
    相关资源
    最近更新 更多