第9章个性化菜单详解.pptx
文本预览下载声明
Android程序设计基础;本章内容;本章目标;第1节 在菜单中嵌入视图;嵌入ActionProvider
ActionProvider的作用
在ActionBar上生成一个视图用作和用户交互
为选项菜单生成二级菜单
通过继承ActionProvider类来创建,ActionProvider相关方法如下:
onCreateActionView 用于创建显示在ActionBar上的视图
onPrepareSubMenu 在子菜单弹出前执行,可以用于添加删除子菜单
在onCreateActionView返回对象时,子菜单相关方法不起作用
onPerformDefaultAction 处理ActionProvider的默认用户动作
;嵌入ActionProvider
通过onCreateActionView嵌入视图
在菜单中使用ActionProvider
;嵌入ActionProvider
嵌入视图运行效果
;
;嵌入导航标签
ActionBar提供了如下方法用于支持导航标签
newTab 方法用于创建一个标签页
addTab 方法用于添加一个标签页
添加导航标签代码示例
;嵌入导航标签
ActionBar显示导航标签时分两种情况
采用横向屏幕且宽度足够时,导航标签直接显示在ActionBar上
采用窄屏,宽度不够时,导航标签显示在独立行上面
显示效果如下
;
;嵌入自定义视图
在菜单项中嵌入视图可以通过以下两种手段
通过ActionProvider完成嵌入
通过ActionViewClass完成嵌入
通过ActionViewClass实现嵌入
1、直接使用已有的视图类或者编写自定义视图类
2、在菜单布局中通过ActionViewClass使用视图类
;
;自定义ActionBar的标题栏
改变ActionBar的标题栏有多种方法
1、利用ActionBar提供的方法修改图标和标题内容
setIcon() 修改图标
setTitle() 修改标题文字内容
2、利用Window中的setFeatureInt方法自定义TitleBar
3、关闭ActionBar,在Activity中自定义设计标题栏
;
;第2节 嵌入视图事件 ;获取ActionProvider项
ActionProvider是为菜单项的能力扩展而产生的
应该在创建菜单项时获取ActionProvider对象
ActionProvider产生的视图对象同样应该在此时获取
获取ActionProvider项代码示例
;获取自定义视图
自定义视图是跟随菜单项设置而成的
应该在创建菜单项时获取ActionView对象
获取ActionView项代码示例
;增加业务处理
在创建选项菜单时获取嵌入视图的相关对象
为这些对象增加相应的事件监听处理代码
;
;第3节 自定义上下文菜单;自定义上下文菜单的思路
系统上下文菜单的缺憾
由于系统在带的上下文菜单在界面效果上不是很让人满意
比如不能显示图标
对默认的上下文菜单进行定制和修改很麻烦
通过对话框设计上下文菜单是个不错的想法
监听控件长按事件弹出自定义的对话框,阻止系统上下文菜单弹出
对话框中可以采用自定义的列表视图来实现模拟菜单的效果
在对话框模拟的上下文菜单和主视图之间通过观察者模式处理事件
;设计上下文菜单的外观
由于通过自定义对话框来实现,外观的设计完全不受限制
菜单的标题可以通过布局来实现,也可以采用对话框标题栏实现
一般来讲是通过ListView的控件来生成菜单项
通过自定义列表项布局可以实现各种形状的自定义菜单
;添加菜单项与图片
针对菜单的ListView设计自定义适配器
把菜单项信息封装在一个类中(Item)
使用List(itemList)记录所有的菜单项
设计一个addItem的方法用于添加菜单项
通过适配器设计的方法添加菜单项
;
;第4节 自定义上下文菜单事件;设计菜单项监听接口
采用观察者模式设计监听接口
为菜单类添加注册监听器的方法
;增加菜单项事件处理
让Activity实现OnMenuItemClickListener接口
;
显示全部