menu相关知识
-
Menu菜单1.概念 <1>Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。 <2>从3.0开始,Android不要求手机设备上必须提供MENU按键。因此Android推荐使用ActionBar来代替Menu。 2、分类 <1>OptionsMenu 按手机menu弹出的菜单 (1)重写public boolean onCreateOptionsMenu(menu)方法 1. // 显示弹出菜单布局必须要重写的方法,在这个地方加载菜单文件2.&nb
-
安卓menu的介绍与使用菜单之前是用户点击系统的菜单键才展示出来的,后来这个键渐渐被移除,菜单变成了点击任意的view都可以展示。菜单非为3种: 1.Options menu and action bar 选项菜单和操作栏 2.Context menu and contextual action mode 上下文菜单和上下文动作模式 3.Popup menu 弹出式菜单现在逐一介绍这3种菜单的使用方法:1.Options menu 这个菜单比较原始,它的实现必须通过点击actionbar 上的按钮或手机自带的菜单键才能显示。首先,在res文件目录下,新建文件夹menu,然后再menu文件夹中新建menu的xml文件,这里我的文件名为"option_menu".<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="
-
[Angular Material完全攻略] Day 08 - 打造基本后台(4) - Menu转载今天我们要来讲Angular Material的Menu元件,Menu可以说是非常具有历史性的功能,使用机会也不低,只要有一系列的选择要浓缩在一个范围内时,就是使用Menu的好时机,接下来就让我们看看Angular Material强大的Menu元件吧!关于Material Design中的Menu在Material Design的Menu设计指南中,Menu可以用来显示一系列的选项,每一列就是一个选项,通常由一个按钮,或一个简单的文字label开始,在画面上进行立体的呈现,而不会影响到其他元素的排版。在桌面应用上Menu可以是多层串接的,在行动装置或平板上则建议一层简单的Menu就好,另外Menu的选项也应该是可以被disable的。图片来源:https://material.io/guidelines/components/menus.html#使用Angular Material的Menu元件要使用Menu元件,首先要先加入MatMenuModule。使用mat-menu我们使用<mat-m
-
用vue做一个酷炫的menu写在前面 最近看到一个非常酷炫的menu插件,一直想把它鼓捣成vue形式,谁让我是vue的死灰粉呢,如果这都不算爱。开个小玩耍,我们一起来探索黑魔法吧。观看本教程的读者需要具备一定的vue和css3的知识.本文结构1.效果演示2.使用方法介绍3.关键步骤讲解正文1.效果演示pic_1pic2pic_3 在线演示live demo2.使用介绍 项目地址:github.com/MingSeng-W/vue-bloom-menu,clone项目到本地 a. 首先在单文件组件里引入menu组件,导入common文件夹stylus里的menuConfig.stylus. b.配置相应的参数 &nbs
menu相关课程
menu相关教程
- 3.2 Context Menu 示例 3.2.1 加载 ContextMenu加载一个 ContextMenu 通常需要以下步骤:调用registerForContextMenu()传入一个 View,来为该 View 注册一个Context Menu,从此该 View 就和一个 OptionMenu 绑定;在 Activity 中复写onCreateContextMenu()方法,当用户长按你注册过的 View,Android 系统就会回调此方法,我们可以在这里进行 menu 资源的加载。其实逻辑和 Option Menu 类似,但是因为需要绑定 View 所以多了一个注册操作,加载代码如下:@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_file, menu);}onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)方法需要传入 3 个参数,分别是:ContextMenu menu: 菜单对象,类似 OptionMenu 里面的 Menu 对象View v: 与 Context Menu 绑定的 View 对象ContextMenuInfo menuInfo: 包含与被选项的一些附加信息注意: 如果当前 Activity 有多个 View 都有 Context Menu,那么需要通过这几个参数来判断当前触发的是哪个 View 相关的 Context Menu3.2.2 处理 Context Menu 选项的点击事件当用户点击上下文菜单项的时候,系统会回调onContextItemSelected()方法,所以我们可以在方法里实现相应的处理逻辑。如下:@Override public boolean onContextItemSelected(MenuItem item) { // 处理 Context Menu 选项的点击事件 } }
- 1.3 Popup Menu 从字面上看和上一节学的 PopupWindow 很像,没错,它的样式确实和 PopupWindow 是一样一样的。同时它也需要绑定到一个 View 上面,然后会以一个竖直列表的形式弹出一个悬浮窗,非常适合对 View 进行设置或者提供一些相关的附加选项。注意: Context Menu 和 Popup Menu 都需要和一个 View 绑定,但 Popup Menu 里面的选项点击不应该直接影响到 View的内容,否则应该使用 Context Menu,Popup Menu 更多的是用于 View 相关操作的扩展。
- 3.3 Popup Menu 示例 3.3.1 展示 Popup Menu和 Context Menu 类似,Popup Menu 也需要和一个 View 绑定,但二者的加载过程有些不同。加载一个 Popup Menu 需要经过 3 个步骤:调用 PopupMenu 的构造器,传入当前 Application 的上下文对象,待绑定的 View;调用getMenuInflater()获取 MenuInflater对象,通过它将菜单资源装载入 PopupMenu 的 Menu 实例中;调用 PopupMenu 对象的show()弹出菜单。加载代码如下:PopupMenu popupMenu = new PopupMenu(this,view);MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.menu,popupMenu .getMenu());popup.show();3.3.2 监听 Popup Menu 的点击事件为了监听 Popup Menu 的点击事件,我们需要在 Activity 中实现PopupMenu.OnMenuItemClickListener接口并通过setOnMenuItemclickListener()方法注册 Popup Menu。这样一来,当用户点击菜单项的时候,Android 系统会回调 Activity 的onMenuItemClick()方法,在当中处理点击事件即可。
- 2. Menu 资源的创建方法 对于以上提到的 3 种类型的菜单,你都可以通过 Java 代码或者 XML 资源文件两种方式创建,但大多数情况下我强烈推荐使用XML 的形式。用 XML 可以对菜单结构一目了然,并且和逻辑代码物理隔离,更有利于我们维护。在编写完 XML 菜单资源之后,在 Java 代码中直接 inflate 加载资源文件即可。创建菜单资源需要以下步骤:右键点击“res”目录,依次选择:new -> Android resource directory ,如下:在弹出的窗口中输入“menu”并选择 Resource Type 为“menu”,点击 OK:右键点击“menu”文件夹,依次选择“New -> Menu resource file”,在 menu 目录新增一个名为“menu.xml”的菜单资源:创建完成之后,就可以开始编写 menu.xml 文件了,一个菜单资源文件通常包含以下标签:menu:必选标签。用来定义一个菜单,菜单内所有的选项(item)都需要写在<menu/>标签内,同时它也是整个 menu 资源文件的根节点。item:必选标签。用来创建一个菜单项,每一个<item/>标签代表 menu 中的一个选项,另外在 <item/>中我们还可以嵌套定义<menu/>节点,以此来创建一个子菜单。group:可选标签。用来将多个<item/>标签做分组,它用来对菜单里的选项进行分类,这样同类型的选项可以共享一些属性,增强选项类别。在了解了菜单资源标签之后,我们就可以简单编写一个菜单资源了,代码非常简单如下:<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/main_menu" android:title="我要学习客户端开发" android:icon="@drawable/ic_launcher" > <!-- 添加客户端子菜单 --> <menu> <item android:id="@+id/submenu1" android:title="学习 Android" android:icon="@drawable/ic_launcher"/> <item android:id="@+id/submenu2" android:title="学习 iOS" android:icon="@drawable/apple" /> </menu> </item> </menu>其中<item/>标签支持几种属性来配置样式或者行为,常用的属性比较好理解,主要有以下 2 种:android:id:菜单项的资源 ID,用来唯一标识某个选项,后续可以通过 ID 来判断用户点击的是哪个菜单项。android:icon:设置菜单项对应的图标android:title:设置菜单项的内容
- 3.1 Option Menu 示例 3.1.1 加载 Option Menu 资源为了使用 Option Menu,我们需要在 Activity 中复写onCreateOptionsMenu()方法:@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_file, menu); return true; }当 Activity 创建 Option Menu 的时候系统会回调此函数,我们只需要在里面 inflate 我们的菜单资源即可,其中getMenuInflater()用来获取一个“MenuInflater”对象,我们可以用它来加载一个 menu 资源文件——menu.xml。3.1.2 处理菜单项的点击事件当用户在菜单中点击了某个选项之后,Android 系统会回调onOptionsItemSelected()方法,并传入被选菜单项的 Menu 实例。我们可以通过 Menu 实例的getItemId()方法拿到菜单项对应的唯一 ID(通过<item/>标签的 android:id 属性设置的),从而判断用户选择的是哪一项,进而执行相应的逻辑,代码如下:@Overridepublic boolean onOptionsItemSelected(MenuItem item) { // 根据点击的选项处理不同的逻辑 switch (item.getItemId()) { case R.id.menu: // 点击主菜单 return true; case R.id.submenu1: // 点击子菜单1 return true; case R.id.submenu2: // 点击子菜单2 return true; default: return super.onOptionsItemSelected(item); }}**注意:**在你成功处理了菜单项的点击事件之后(我们通常称之为消费),你需要在函数的末尾返回“true”,如果没有消费那么可以返回false,不过建议调用super.onOptionsItemSelected(item)将本次点击事件交给上层处理(上层的默认实现也是false)。
- 4.1 编写 menu 资源 在第 2 小节中我们详细介绍了 menu 资源,它包括<menu/>、<item/>、<group/>三种标签,为了演示方便我们直接采用第 2 小节中的菜单资源。
menu相关搜索
-
mac osx
machine_start
macox
magellan
malloc
manifest
manifest文件
map
map 遍历
mapreduce编程
maps google com
margin
margin bottom
margin left
margin right
margin top
marginbottom
marginheight
marginleft
margintop