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

时间:2015-01-13 14:03:44

标签: android android-actionbar android-toolbar

我想在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 个答案:

答案 0 :(得分:29)

尝试将此添加到您的ImageView:

android:layout_gravity="end"

答案 1 :(得分:12)

如果你想要这样的东西(图标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>
    
  2. 通过

    将您的活动/片段添加到操作栏/工具栏中
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getMenuInflater();
       inflater.inflate(R.menu.menu, menu);
       return true;
    }
    
  3. 处理菜单项事件

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

答案 2 :(得分:1)

如果有任何人仍然感到困惑(包括我之前),那么android工作室不会为android:layout_gravity标签下的toolbar提供自动填充功能。为了使其有效,只需将android:layout_gravity="end"复制并粘贴到ImageView /布局。

答案 3 :(得分:0)

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

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

如果要在菜单项之间添加边距,则可以在菜单项之间添加一个空菜单项

答案 4 :(得分:-1)

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

然后在OnCreateView中:  setHasOptionsMenu(真); 关闭下面的OncreateView写下这个:  @override

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