Android 动态控制OptionMenu的显示与隐藏
在有些场景下,可能需要动态的显示和隐藏optionmenu,可以这样实现:
如果在activity中默认实现了方法:
onCreateOptionsMenu(Menu menu)
那么该OptionMenu在打开activity时就会显示
如果我们要默认隐藏该OptionMenu,就可以这样实现:
activity中有这样一个方法:
public boolean onPrepareOptionsMenu(Menu menu)
该方法在显示OptionMenu前会被调用,所以我们可以这样实现
1 public boolean onPrepareOptionsMenu(Menu menu){
2 for (int i = 0; i < menu.size(); i++){
3 menu.getItem(i).setVisible(false);
4 menu.getItem(i).setEnabled(false);
5 }
6 return super.onPrepareOptionsMenu(menu);
7 }
如果我们需要再显示呢,很明显,我们无法再触发onPrepareOptionsMenu的调用
所以我们需要设置两个全局变量:
1 private boolean optionMenuOn = false; //标示是否要显示optionmenu
2 private Menu aMenu; //获取optionmenu
新建一个函数来决定是否显示optionmenu
1 private void checkOptionMenu(){
2 if(null != aMenu){
3 if(optionMenuOn){
4 for (int i = 0; i < aMenu.size(); i++){
5 aMenu.getItem(i).setVisible(true);
6 aMenu.getItem(i).setEnabled(true);
7 }
8 }else{
9 for (int i = 0; i < aMenu.size(); i++){
10 aMenu.getItem(i).setVisible(false);
11 aMenu.getItem(i).setEnabled(false);
12 }
13 }
14 }
15 }
首先我们需要aMenu赋值,然后在调用checkOptionMenu()方法,那么我们可以在onPrepareOptionsMenu中这样实现
1 public boolean onPrepareOptionsMenu(Menu menu){
2 aMenu = menu
3 checkOptionMenu();
4 return super.onPrepareOptionsMenu(menu);
5 }
如果我们需要再显示OptionMenu,比如点击按钮事件中,可以设置
optionMenuOn = true
然后调用
checkOptionMenu()
即可显示OptionMenu。
转自:http://www.jianshu.com/p/000f31af06b5
Android 动态控制OptionMenu的显示与隐藏的更多相关文章
- Android 软键盘的显示和隐藏,这样操作就对了
一.前言 如果有需要用到输入的地方,通常会有需要自动弹出或者收起软键盘的需求.开篇明义,本文会讲讲弹出和收起软键盘的一些细节,最终还会从源码进行分析. 想要操作软键盘,需要使用到 InputMetho ...
- android 软键盘的显示与隐藏问题的研究
在android中,常常会和输入法的软件键盘交互.在Manifest文件中,系统给activity的一个属性-windowSoftInputMode来控制输入法的显示方式. 该属性提供了Activit ...
- Android Visibility控件显示和隐藏
Android控件显示和隐藏 visibility 可见(visible) XML文件:android:visibility="visible" Java代码:view.setVi ...
- Android之密码的显示与隐藏
很多应用都是显示与隐藏密码的功能. 之前的项目都没这个功能要求,也没有专门研究这个.最近项目有加这个功能,我这里也刚好整理一下. 我的思路是设置EditText的InputType.代码如下: if ...
- Android下拉上滑显示与隐藏Toolbar另一种实现
public abstract class RecyclerViewScrollListener extends RecyclerView.OnScrollListener { private sta ...
- android软键盘的显示和隐藏
显示: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.toggle ...
- Android动态控制状态栏显示和隐藏
记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发 ...
- Android文本输入框(EditText)切换密码的显示与隐藏
package cc.c; import android.app.Activity; import android.os.Bundle; import android.text.Selection; ...
- Android监听键盘显示和隐藏
问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框.这种问题只出现在非全屏键盘到情况下. 方案1:mainActivity重写onconfiguration ...
随机推荐
- Redis原理再学习05:数据结构-整数集合intset
intset介绍 intset 整数集合,当一个集合只有整数元素,且元素数量不多时,Redis 就会用整数集合作为集合键的底层实现. redis> SADD numbers 1 3 5 7 9 ...
- php session 的使用方法
public function insert(Request $request){ $parm = $request->except('token'); $this->validate($ ...
- 程序设计基础·Java学习笔记·面向对象(上)
Java程序设计基础之面向对象(上) (自适应学习进度而进行记录的笔记,希望有一些小小的用处吧(^∀^●)ノシ) (新人上路,望多指教,如有错误,望指正,万分感谢(o゚v゚)ノ) 目录 一.面向对象 ...
- 关于alertmanager报No private IP address found, and explicit IP not provided
./alertmanager --config.file=alertmanager.yml level=info ts=2021-11-22T05:53:11.195Z caller=main.go: ...
- wordpress在线检测主题和插件
http://wpthemedetector.coderschool.cn/ http://www.wpthemedetector.com/ http://whatwpthemeisthat.com ...
- CSC3100
其实是存一下代码 1. AVL的java实现 维护一下每个点左右子树深度差,差绝对值大于2就转,转的方式和treap, splay转的方式差不多.旋转操作可以使两端差归零变得更平衡. 虽然平衡但转的次 ...
- 在idea中新建完springboot项目的时候遇到问题(右键没有class选择;控制台报错:Could not transfer artifact org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.60 from/to central ....)
一.在idea中新建完springboot项目的时候遇到问题 问题1:右键没有class选择 解决:之所以会如此,是因为项目还没完成创建完成,解决:只需等等即可,等到完全创建完成即可 问题2(报tom ...
- leetcode210.拓扑排序
拓扑排序能否成功,其实就是看有没有环 有环:说明环内结点互为前置,永远也不可能完成 无环:是线性的,可以完成 DFS方法 思路: 逆向思维,遍历到边界点(无邻接点相当于叶子),再不断回溯将结点加入到结 ...
- Nacos配置中心集群原理及源码分析
Nacos作为配置中心,必然需要保证服务节点的高可用性,那么Nacos是如何实现集群的呢? 下面这个图,表示Nacos集群的部署图. Nacos集群工作原理 Nacos作为配置中心的集群结构中,是一种 ...
- JDBC操作数据库的步骤 ?
注册数据库驱动. 建立数据库连接. 创建一个Statement. 执行SQL语句. 处理结果集. 关闭数据库连接.