前言
简单记录一下标题栏中Menu的使用。
流水文,之前没记录,这次有空重新简单记录一下。
正文
在Android Studio中新创建一个Module。在res目录创建menu,然后创建一个menu.xml
- /res/menu/menu.xml
menu.xml
- <menu xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto">
- <item
- android:id="@+id/app_menu_1"
- android:title="@string/app_menu_1"
- android:icon="@mipmap/ic_launcher"
- app:showAsAction="always" />
- <item
- android:id="@+id/app_menu_2"
- android:title="@string/app_menu_2"
- android:icon="@mipmap/ic_launcher"
- app:showAsAction="ifRoom" />
- <item
- android:id="@+id/app_menu_3"
- android:title="@string/app_menu_3"
- android:icon="@mipmap/ic_launcher"
- app:showAsAction="never" />
- </menu>
这里app:showAsAction需要介绍一下,有三个参数:
ifRoom 在屏幕空间足够时显示在Toolbar中,否则显示在菜单。
never 永远不显示在Toolbar中,而是一直显示在菜单中。
always 永远显示在Toolbar中,如果屏幕空间不够则不显示。
Toolbar中的action按钮只会显示图标,菜单中的action按钮只会显示文字。如果menu显示在Toolbar中,如果有图标,就只显示图标。
MainActivity.java
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.menu, menu);
- return true;
- }
-
- @SuppressLint("NonConstantResourceId")
- @Override
- public boolean onOptionsItemSelected(@NonNull MenuItem item) {
- switch (item.getItemId()) {
- case R.id.app_menu_1:
- Toast.makeText(this, getText(R.string.app_menu_1), Toast.LENGTH_SHORT).show();
- return true;
- case R.id.app_menu_2:
- Toast.makeText(this, getText(R.string.app_menu_2), Toast.LENGTH_SHORT).show();
- return true;
- case R.id.app_menu_3:
- Toast.makeText(this, getText(R.string.app_menu_3), Toast.LENGTH_SHORT).show();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
经过上面两部,菜单(menu)就差不多显示了。
参考文章
© 版权声明