工具栏徽标和标题是居中的,即使它们不应该是

时间:2015-04-20 18:19:37

标签: android android-toolbar

我在Android应用程序中实现工具栏时遇到了问题。我真的有几个问题。

首先,我的 MainActivity.java

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar_Main);
        toolbar.setLogo(R.drawable.logo);
        toolbar.setTitle(R.string.app_name);
        toolbar.inflateMenu(R.menu.main_actions);

        setActionBar(toolbar);
    }
}

activity_main.xml中

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    android:nestedScrollingEnabled="false">

    <Toolbar
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        android:id="@+id/toolbar_Main"
        android:background="?android:attr/colorPrimary" />

    <!-- There's an EditText here, but I think that's not the problem -->

</LinearLayout>

styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="android:Theme.Material.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:colorPrimary">@color/primaryColor</item>
        <item name="android:colorPrimaryDark">@color/primaryColorDark</item>
    </style>
</resources>

我遇到的问题是:

  1. 菜单消失了;
  2. 徽标和标题文字位于工具栏的中心位置,即使我非常确定我没有将任何属性设置为居中或其他任何属性。
  3. 现在我可以通过移除setActionBar部分来解决第一个问题(虽然不确定这是不是很好),但第二个问题不是那么多。无论我尝试什么,徽标和文字都保持居中。我尝试将工具栏的重力设置为top|left,以及其他一些事情,但都无济于事。

    在Google(或StackOverflow)上进行搜索时,我得到的结果是要求将文本居中,这是我 想要的。

    我还应该提到我只为API级别21开发应用程序,所以没有AppCompat和所有那些花哨的东西,只是我希望用作应用程序的主要ActionBar的工具栏。 / p>

    我可能只是错过了一些小事,所以提前谢谢。

1 个答案:

答案 0 :(得分:0)

对我来说:

  • 您应该删除setActionBar()电话;
  • 您的菜单可能正在消失,因为您的设备上可能有硬件菜单按钮。尝试点击,看看会发生什么。但是,要修复此问题,请尝试删除inflateMenu()行,并像往常一样在onCreateOptionsMenu()期间对菜单进行充气;
  • 标题和徽标问题以及菜单消失可能是由于:

    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    

    为什么这些线?如果您不需要,请将其删除。

  • 如果无法解决此问题,请先尝试拨打setActionBar(toolbar),然后然后使用getActionBar().setTitle()设置标题。但是,我非常确定从你的风格中删除两个窗口就足够了,所以首先要这样做。