Android-操作栏之选项菜单
2024-08-25 09:35:33
回答第一个问题:什么是选项菜单?答:选项菜单就是可以显示在操作栏上的菜单。
菜单的视图需要建立在res/menu下。
其中,showAsAction属性用于指定菜单选项是显示在操作栏还是隐藏到溢出菜单(overflow menu)。ifRoom|withText表示只要空间够,就显示图标与文字在操作栏上。always(不推荐使用)和never也是属性值。
选项菜单除了视图之外,有两个回调函数非常重要。
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater)
public boolean onOptionsItemSelected(MenuItem item)
这两个方法在activity和fragment里都有。
先说onCreateOptionsMenu方法,如果选项菜单是在fragment中,整个流程如下:
FragmentManager--(判断fragment的hasOptionsMenu值)-->true--(调用fragment的onCreateOptionsMenu())-->OptionsMenu
再说onOptionsMenuSelected(MenuItem item)方法,该方法传入的参数就是被选中的item,还记得本文开头的选项菜单视图中定义的item么,
对,就是那里定义的item。那么如何判断用户选择的是哪个item呢?通过item的getItemId()方法获取item的id来和视图中我们的item中的id对比。
太阳照常升起,人生寂寞如雪。
最新文章
- sql查询慢优化
- 2016huasacm暑假集训训练五 E - What Is Your Grade?
- shell学习笔记1
- Android之Inflate()方法用途
- lambda显式声明返回值
- IOS pop使用代理传值
- python手记(36)
- Swift - 2 (?和!、结构体、类、协议、扩展、闭包)
- go语言初体验
- Python 显示LinkedIn用户作业
- 你可能把A/B测试做错了
- [笔记]RankSVM 和 IR SVM
- HighCharts基本折线图
- Dijkstra算法 c语言实现
- 斯坦福大学公开课机器学习:machine learning system design | error metrics for skewed classes(偏斜类问题的定义以及针对偏斜类问题的评估度量值:查准率(precision)和召回率(recall))
- axure—日期函数
- Scala学习之路 (九)Scala的上界和下届
- Python3 - DBUtils 和 pymysql 整合
- 测试开发之Django——No2.Django的安装以及项目创建
- C语言中的 (void*)0 与 (void)0