AppCompatActivity 中的Menu (菜单)
来源:互联网 发布:mysql服务器硬件配置 编辑:程序博客网 时间:2024/05/21 22:49
最近开发有用到菜单栏。想在actionbar 右边加菜单栏。刚开始图为这样
然后我在activity 重写了菜单栏的代码
@Override public boolean onCreateOptionsMenu(Menu menu) { Log.e("MainActivity","onCreateOptionsMenu"); // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return super.onCreateOptionsMenu(menu); }
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".DemoActivity"> <item android:id="@+id/action_material" android:title="Material" android:orderInCategory="100" app:showAsAction="never" /> <item android:id="@+id/action_circles" android:title="Circles" android:orderInCategory="100" app:showAsAction="never" /> <item android:id="@+id/action_water_drop" android:title="WaterDrop" android:orderInCategory="100" app:showAsAction="never" /> <item android:id="@+id/action_ring" android:title="Ring" android:orderInCategory="100" app:showAsAction="never" /></menu>然后就显示了 右边的菜单栏 ,如图
大功告成。
拓展 :重写了三个方法 :onCreateOptionsMenu,onPrepareOptionsMenu,onOptionsMenuClosed
@Override public boolean onCreateOptionsMenu(Menu menu) { Log.e("MainActivity","onCreateOptionsMenu"); // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return super.onCreateOptionsMenu(menu); }
@Override public boolean onPrepareOptionsMenu(Menu menu) { Log.e("MainActivity","onPrepareOptionsMenu"); return super.onPrepareOptionsMenu(menu); }
@Override public void onOptionsMenuClosed(Menu menu) { Log.e("MainActivity","onOptionsMenuClosed"); super.onOptionsMenuClosed(menu); }
执行以后 得到
由此可见,代码的执行顺序是按以上顺序执行的。那么这三个方法有什么用?
onCreateOptionsMenu 这个方法,返回值必须是true才会有右上角的选项菜单栏。返回false 则没有。
onPrepareOptionsMenu 这个方法,是在onCreateOptionsMenu被调用以后执行,而且每次点击右上角的那个按钮,就会调用一次。如果返回true,才有菜单栏。也就是要这两方法同时返回true才能有菜单栏。
onOptionsMenuClosed 这方法,没什么用,不管怎么点都没有效果,不太清楚。源码写的是"每次菜单被关闭时调用. (菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项" 但是我没发现有这个效果
阅读全文
0 0
- AppCompatActivity 中的Menu (菜单)
- Android中的Menu(菜单)
- appfuse中的菜单(struts menu)
- Android中的Menu菜单小解
- Android中的Menu菜单小解
- Android中的Menu功能菜单-OptionsMenu[选项菜单]
- 菜单(menu)
- Menu菜单
- 菜单 MENU
- 菜单(Menu)
- 菜单Menu
- Menu 菜单
- Menu 菜单
- Menu菜单
- menu(菜单)
- Menu菜单
- Menu菜单
- Menu菜单
- Sequence Poj
- Java类变量类型
- IE6双倍边距问题及其解决方法
- Unity "Apply Root Motion" 与 “Bake into Pose”
- linux 通过crt直接上传和下载文件和文件
- AppCompatActivity 中的Menu (菜单)
- elasticsearch-2.3.4 ik分词器
- 2017北京云栖大会拉开帷幕,Clouder Lab动手实验室受开发者欢迎
- px4原生源码学习四--Nuttx 实时操作系统编程
- Python入门1
- HDU2037:今年暑假不AC
- effective C++ 08_别让异常逃离析构函数 读书笔记
- 深圳领存技术发布6U VPX异构加速计算机
- RecyclerView拖拽Item动画