AppCompat工具栏显示不需要的设置按钮

时间:2014-12-18 15:17:42

标签: android android-actionbar xamarin android-appcompat android-toolbar

我刚开始在我的Android应用中使用工具栏而不是操作栏。但它在屏幕底部显示了一个荒谬的设置按钮,我找不到擦除它的方法。请帮帮我。

以下是您了解问题的屏幕截图: http://i.stack.imgur.com/x1Gwe.png

这是我的代码:

        SetContentView(Resource.Layout.Main_Activity_Container);
        var toolbar = FindViewById<Toolbar>(Resource.Id.Toolbar);
        var toolbarBottom = FindViewById<Toolbar>(Resource.Id.BottomToolbar);

        SetSupportActionBar(toolbar);
        SupportActionBar.Title = "Hello from Toolbar";
        SetSupportProgressBarIndeterminate(false);
        toolbarBottom.Title = "";
        toolbarBottom.InflateMenu (Resource.Menu.tabs);
        toolbarBottom.MenuItemClick += delegate(object sender, Toolbar.MenuItemClickEventArgs e)
        {
            Toast.MakeText(this,
                "Bottom toolbar pressed: " + e.Item.TitleFormatted, duration:    ToastLength.Short).Show();
            indeterminateVisible = !indeterminateVisible;
            SetSupportProgressBarIndeterminateVisibility(indeterminateVisible);
        };

axml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <android.support.v7.widget.Toolbar
    android:id="@+id/Toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/actionBarSize"
    android:layout_alignParentTop="true"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:background="?attr/colorPrimary" />
<android.support.v7.widget.Toolbar
    android:id="@+id/BottomToolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/actionBarSize"
    style="@style/HeaderBar"
    android:background="?attr/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:layout_alignParentBottom="true" />
<FrameLayout
    android:id="@+id/Container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/Toolbar"
    android:layout_above="@id/BottomToolbar" />
</RelativeLayout>

styles.xml

<style name="MyTheme"  parent ="@style/Theme.AppCompat.Light">
  <item name="android:windowNoTitle">true</item>
  <item name="windowActionBar">false</item>
  <item name="colorPrimary">#2196F3</item>
  <item name="colorPrimaryDark">#1976D2</item>
  <item name="windowActionModeOverlay">true</item>
  <item name="colorAccent">#FF4081</item>
  <item name="android:actionMenuTextColor">#24598a</item>
  <item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
</style>
<style name="ActionButtonStyle" parent="@style/Widget.AppCompat.ActionButton">
  <item name="android:minWidth">70dip</item>
  <item name="android:paddingStart">0dip</item>
  <item name="android:paddingEnd">0dip</item>
</style>

tabs.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:local="http://schemas.android.com/apk/res-auto">
 <item android:id="@+id/menu_share"
      android:icon="@drawable/icon"
      local:showAsAction="always"
      android:title="Edit" />
  <item android:id="@+id/menu_share"
      android:icon="@drawable/icon"
      local:showAsAction="always"
      android:title="Undo" />
  <item android:id="@+id/menu_share"
      android:icon="@drawable/icon"
      local:showAsAction="always"
      android:title="Redo" />
  <item android:id="@+id/menu_share"
      android:icon="@drawable/icon"
      local:showAsAction="always"
      android:title="Save" />

我还想更改这些菜单项的位置。我知道我可以在工具栏中使用自定义组件,但我不明白为什么这些菜单项总是出现在右侧。 谢谢。

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,我按照以下步骤解决了这个问题:

首先要删除底部令人作呕的设置按钮,请执行以下操作:

在你的活动中,评论getMenuInflater()。inflate(...):

....

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //getMenuInflater().inflate(R.menu.display_map, menu);
    return true;
}

....

这肯定会从底部删除设置按钮,它确实是我的。

现在您可以创建自己的菜单项作为普通视图,在工具栏中添加任意数量的按钮,无论您想要什么,请参阅示例:

工具栏只是一个ViewGroup,因此,在您的toolbar.xml文件中或者您已定义android.support.v7.widget.Toolbar时,根据您对按钮及其位置的要求进行更改。

下面显示了如何在工具栏中心添加按钮,您可以将其更改为所需位置:

<android.support.v7.widget.Toolbar
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/toolbar"
   android:minHeight="?attr/actionBarSize"
   android:layout_height="?attr/actionBarSize"
   android:background="@drawable/color_toolbar"
   android:layout_width="match_parent">

    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="button"
    android:onClick="buttonHandler"/>

</android.support.v7.widget.Toolbar>