如何在工具栏末尾设置图标

25

我想在我的工具栏(Toolbar)末尾设置一个图标,该图标可以启动另一个活动。我的工具栏(Toolbar)部分如下:

 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="@dimen/abc_action_bar_default_height_material"
                android:background="#2B4AE0"
                app:theme="@style/ToolBarStyle">

                <TextView
                    android:id="@+id/headerText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="@android:style/TextAppearance.Theme"
                    android:textColor="@android:color/white" />

                <RelativeLayout
                    android:id="@+id/notification"
                    android:layout_width="50dp"
                    android:layout_height="match_parent"
                    android:clickable="true"
                    android:gravity="center" />

                    <ImageView
                        android:layout_width="25dp"
                        android:layout_height="25dp"

                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/bell_icon" />
                </RelativeLayout>
            </android.support.v7.widget.Toolbar>

我尝试了

android:layout_alignParentEnd="true"

我设置了左边距,但是它没有正确地工作。

5个回答

45

尝试将此内容添加到您的 ImageView 中:

android:layout_gravity="end"

@Sam Works。但是当您在menu_main文件中有项目时,此ImageView将放置在这些项目的左侧。您如何始终将ImageView放在右侧(无论是否有菜单项)? - CopsOnRoad

19

如果您想获得像这样的内容(图标2) example

您无需手动将图标添加到布局中,而应该实现menu.xml

  1. 创建以下menu.xml文件

    翻译内容需要在上下文的情况下进行,无法提供完整的翻译,请提供更具体的上下文。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_activity"
        android:icon="@drawable/ic_custom_icon"
        android:title="@string/new_activity" />
</menu>
请将以下内容翻译为中文:
  • Add it in your activity/fragment to the actionbar/toolbar by

    答案:
  • 通过在您的活动/片段中将其添加到操作栏/工具栏中

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getMenuInflater();
       inflater.inflate(R.menu.menu, menu);
       return true;
    }
    
  • 处理菜单项事件

  • 带有菜单的工具栏正常工作,它会自动将图标设置在工具栏的右侧


    1
    如果我想添加自定义图标,该怎么办? - shine_joseph
    @android_sh_jo 在菜单的xml文件中添加android:icon="@drawable/ic_your_custom_icon",并更新答案中的代码。 - Kirill Shalnov
    1
    如果他不想使用supportactionbar,则此方法将无法正常工作。 - Dragos Rachieru

    8

    如果还有人感到困惑(包括我以前),某种方式下,Android Studio不会为toolbar标签下的android:layout_gravity提供自动完成功能。因此,要使其工作,只需将android:layout_gravity="end"复制并粘贴到ImageView/layout中。


    3

    设置orderInCategory将设置菜单项的顺序

     <item 
        ...
          android:orderInCategory="150"
          app:showAsAction="always"
        ..
        />
    

    如果您想在菜单项之间添加边距,可以在它们之间添加一个空的菜单项。

    2

    <item
        android:title="kjljk"
        app:showAsAction="always"
        android:id="@+id/menuitem_search"
        android:icon="@drawable/pdficon"
        >
    </item>
    

    然后在OnCreateView中: setHasOptionsMenu(true); 在下面关闭OncreateView之后写入以下内容: @Override

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.pdf, menu);
        ...
    }
    

    如果您正在使用导航工具栏,则这是添加图标的正确方法。 - Pritam

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接