AndroidUI--ActionBar(Menu)
2016-05-21 10:46
176 查看
1. ActionBar 是什么?
它是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action
bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API
级别 11)中。
它在位于终端右上角三个点的图标。具体可以看/article/1361191.html
2. 强制打开ActionBar 直接调用下面的函数,该函数是通过反射机制来判断当前设备是否有menu按键,并且强制显示在右上角。
private void getOverflowMenu() { // 显示右上角的actionbar
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}除此之外还得在onMenuOpened中返回true
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
return true;// 返回为true 则显示系统menu
}
除此之外,还要
3. 在Actionbar中加入menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 该方法只在应用启动的时候才会被调用。要想在程序执行过程中改变menu中的内容可以在onPrepareOptionsMenu(Menu menu)中实现。
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.more, menu);
return true;
}
并且通过onOptionsItemSelected处理选中的菜单项,在onOptionsMenuClosed中处理菜单项关闭之后的逻辑。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void onOptionsMenuClosed(Menu menu) {
}
在这几篇博客中讲解的很详细:
http://blog.csdn.net/yuzhongchun/article/details/8956256
http://android.blog.51cto.com/268543/306424/
4. 其他和Menu的相关问题,可以参考博客
右上角添加菜单:/article/8130562.html
如何使用group:/article/7965018.html
ActionBar和Tab显示一行或二行,/article/1859650.html
它是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action
bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API
级别 11)中。
它在位于终端右上角三个点的图标。具体可以看/article/1361191.html
2. 强制打开ActionBar 直接调用下面的函数,该函数是通过反射机制来判断当前设备是否有menu按键,并且强制显示在右上角。
private void getOverflowMenu() { // 显示右上角的actionbar
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}除此之外还得在onMenuOpened中返回true
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
return true;// 返回为true 则显示系统menu
}
除此之外,还要
3. 在Actionbar中加入menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 该方法只在应用启动的时候才会被调用。要想在程序执行过程中改变menu中的内容可以在onPrepareOptionsMenu(Menu menu)中实现。
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.more, menu);
return true;
}
并且通过onOptionsItemSelected处理选中的菜单项,在onOptionsMenuClosed中处理菜单项关闭之后的逻辑。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void onOptionsMenuClosed(Menu menu) {
}
在这几篇博客中讲解的很详细:
http://blog.csdn.net/yuzhongchun/article/details/8956256
http://android.blog.51cto.com/268543/306424/
4. 其他和Menu的相关问题,可以参考博客
右上角添加菜单:/article/8130562.html
如何使用group:/article/7965018.html
ActionBar和Tab显示一行或二行,/article/1859650.html
相关文章推荐
- NGUI与粒子系统
- hdu 3932 Groundhog Build Home
- FusionCharts Suite XT统计图表使用笔记(2)--创建图表过程步骤
- BUILD FAILED|Error:Error converting bytecode to dex|Cause: Exception parsing classes
- LigerUI - 提交表单,checkbox没数据
- LigerUI - 提交表单,checkbox没数据
- Apue学习:高级I/O
- 使用request.js时遇到的url编码问题
- stack(using queue)
- 配置基于UEFI的硬盘启动WinPE
- HDU2604 Queuing(矩阵快速幂模板)
- 详解iOS App中UISwitch开关组件的基本创建及使用方法
- LeetCode 62. Unique Paths(唯一路线)
- 在 UEFI 或旧版 BIOS 模式中启动 Wind在 UEFI 或旧版 BIOS 模式中启动 Windows PEows PE
- 特殊权限之 suid sgid sticky_bit
- LeetCode 60. Permutation Sequence(排列序列)
- LeetCode 52. N-Queens II(N皇后)
- LeetCode 51. N-Queens(N皇后)
- BigBlueButton简介
- Bigbluebutton服务执行过程及相关配置文件