AndroidUI--ActionBar(Menu)

来源:互联网 发布:mac 数据库建模软件 编辑:程序博客网 时间:2024/06/06 15:35


1. ActionBar 是什么?

它是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。

它在位于终端右上角三个点的图标。具体可以看http://blog.csdn.net/xyz_lmn/article/details/8132420

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的相关问题,可以参考博客

右上角添加菜单:http://blog.csdn.net/tingyuanss/article/details/45840713

如何使用group:http://blog.csdn.net/maojudong/article/details/7010210

ActionBar和Tab显示一行或二行,http://blog.csdn.net/tongcpp/article/details/45826011



0 0
原创粉丝点击