如何在工具栏的末尾设置一个图标
How to set an icon at the end of Toolbar
我想在 Toolbar
的末尾设置一个图标,开始另一个 activity。
我的 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"
并设置了剩余边距,但它无法正常工作。
尝试将此添加到您的 ImageView:
android:layout_gravity="end"
如果您想要这样的东西(图标 2)
您不需要手动将图标添加到布局中,您应该实现 menu.xml
像这样创建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>
将它添加到您的 activity/fragment 到
的 actionbar/toolbar
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
处理菜单项事件
带菜单的工具栏工作正常,它会自动将图标设置到工具栏的右侧
<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);
...
}
如果有人仍然感到困惑(包括我之前),不知何故 android studio 没有为 toolbar
标签下的 android:layout_gravity
提供自动完成功能。因此,要使其正常工作,只需将 android:layout_gravity="end"
复制并粘贴到 ImageView
/layout.
设置 orderInCategory 将设置菜单项的顺序
<item
...
android:orderInCategory="150"
app:showAsAction="always"
..
/>
如果您想在菜单项之间留出空白,您可以在它们之间添加一个空菜单项
我想在 Toolbar
的末尾设置一个图标,开始另一个 activity。
我的 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"
并设置了剩余边距,但它无法正常工作。
尝试将此添加到您的 ImageView:
android:layout_gravity="end"
如果您想要这样的东西(图标 2)
您不需要手动将图标添加到布局中,您应该实现 menu.xml
像这样创建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>
将它添加到您的 activity/fragment 到
的 actionbar/toolbar@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }
处理菜单项事件
带菜单的工具栏工作正常,它会自动将图标设置到工具栏的右侧
<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);
...
}
如果有人仍然感到困惑(包括我之前),不知何故 android studio 没有为 toolbar
标签下的 android:layout_gravity
提供自动完成功能。因此,要使其正常工作,只需将 android:layout_gravity="end"
复制并粘贴到 ImageView
/layout.
设置 orderInCategory 将设置菜单项的顺序
<item
...
android:orderInCategory="150"
app:showAsAction="always"
..
/>
如果您想在菜单项之间留出空白,您可以在它们之间添加一个空菜单项