www.cftea.com

Android 的 Toolbar & Menu

ITPOW2016/11/21 16:18:30

Toolbar

一般用于顶部类似标题栏的东西。由于原来的 Actionbar 碎片化太严重,所以 Google 推出了 Toolbar。

布局

前面一些代码都提到了 android.support.v7,这里也不例外,这是一个兼容性的指示,如果不指定,我们只有高版本的 Android 能用。比如:

  • android.support.v4 为了照顾 1.6 版本
  • android.support.v7 为了照顾 2.1 版本
  • android.support.v13 为了照顾 3.2 版本

至于用 v 几,取决于你想最低兼容到哪个版本。

呈现代码

需要调用 setSupportActionBar

Menu

我们现在需要在 Toolbar 右边显示三个竖着的小点,一点击它,就出一个菜单。或者当我们按下 Android 的菜单键时(Android 标志性三个键之一),也会弹出来。

布局

res/menu/ 中新建一个 xml 布局文件,顶级节点 menu 下放入两个菜单项:

title 值我们是用的引用,具体是放在 res/values/strings.xml 中的。

呈现代码

对 Activity 重载 onCreateOptionsMenu

如果有 Toolbar,则显示如下:

Menu

由于“设置”的 showAsAction 为 always,所以它是一直显示出来的,而另一个菜单项是隐藏起来的,要点那三个点点,或者按 Android 的菜单键才会显示出来,此时“设置”这一项不包含在显示的菜单列表中(如果没有 Toolbar,则按 Android 菜单键时,“设置”这一项包含在显示的菜单列表中)。

事件代码

菜单是显示出来了,但是要让点击菜单有动作,同样是对 Activity 重载 onOptionsItemSelected 方法。

啰嗦一下

其实我觉得 onCreateOptionsMenu、onOptionsItemSelected 这两个名称有点随意,如果是我,我更愿意起名为:

  • onOptionsMenuCreating
  • onOptionsMenuItemSelected

Options 后面统一跟上 Menu,统一把动词放在后面,ing 表示动作开始,ed 表示动作结束,强迫症的人,看着就舒坦。

<<返回首页<<