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 ...
随机推荐
- 矩池云上如何快速安装tensorRT
国内镜像 https://mirrors.cloud.tencent.com/nvidia-machine-learning/ubuntu1804/x86_64/ 检查系统版本 source /etc ...
- Linux du命令和df命令区别
du 命令 1.命令格式: du [选项][文件] 2.命令功能: 显示每个文件和目录的磁盘使用空间. 3.命令参数: -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文件大 ...
- 变量、变量作用域、常量final、变量的命名规范
变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...
- 终结初学者对ElasticSearch、Kibana、Logstash安装的种种困难
项目中准备使用ElasticSearch,之前只是对ElasticSearch有过简单的了解没有系统的学习,本系列文章将从基础的学习再到深入的使用. 咔咔之前写了一份死磕MySQL文章,如今再入一个系 ...
- Kubernetes:Ingress总结(二)
Blog:博客园 个人 参考:Ingress | Kubernetes.<Kubernetes进阶实战> Contour是Kubernetes Ingress控制器的另一款开源实现,它以高 ...
- Mariadb开启密码复杂度
mariadb开启密码复杂度 #安装插件# INSTALL SONAME 'simple_password_check'; #设置输入错误多少次锁定# set global max_password_ ...
- 造成panic_oom问题的测试代码
写一个内核模块,来构造内核模块出现panic oom,主要采用vmalloc函数: #include <linux/module.h> #include <linux/mm.h> ...
- Acwing 社交距离 分类讨论+贪心
一种新型疾病,COWVID-19,开始在全世界的奶牛之间传播. Farmer John 正在采取尽可能多的预防措施来防止他的牛群被感染. Farmer John 的牛棚是一个狭长的建筑物,有一排共 N ...
- 12.9 Override
12.9 Override 静态方法 父类的引用可以指向子类静态方法(用static修饰的方法)的调用只和左边定义的数据类型有关,如: public class Person { public sta ...
- Vscode的使用小技巧
命令行启动code 如果你的系统是Linux系统(我使用的是Ubuntu 16.04)这样就可以直接使用 code + filename来编辑文件(就像vi + filename) 如果你的系统是Ma ...