ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);//在activity title栏的左侧开启一个<按钮,
   // 然后在onOptionsItemSelected(MenuItem menuItem) 里面使用menuItem.getItenmId()判断id是否为android.R.id.home,如果是则finish掉当前的activity
    /**
* 让overflow显示在activity onCreate()里面调用
*/
private void setOverflowShowingAlways() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 设置actionBar可以显示图标
*/
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
}
}
}
return super.onMenuOpened(featureId, menu);
}
never 表示显示在溢出菜单中显示,溢出菜单就三个口竖屏显示的那个。
ifRoom 表示在显示4个或者是4个以上的item的时候会隐藏到溢出菜单里。还有如果界面显示不了了也会在溢出菜单里面显示。
collapseActionView 表示当前的item可以进行合并,他一般都是和ifRoom配合使用,像我们看到的微信的搜索item就是这个原理做的。
always     表示一直在bar上面显示,不管是什么情况下。都显示。不会显示到溢出菜单里面。
withText   表示会显示文字。。在溢出菜单里面显示。。
android:actionViewClass 这个属性就是可以设置一个view在item里面显示。例如搜索view,android.widget.SerachView
android:actionProviderClass 这个属性就可以设置一个provider在item里面显示,例如自定义的provider,com.xxx.SubMenuProvider。自定义的provider里面可以添加子menu.效果类似于微信里面的一个+号点击以后会弹出一些列子菜单。
android:actionLayout 这个属性就可以设置一个布局文件放到item里面显示。
android:orderInCetegory 这个属性就是传入一个整数类型,传入的值越大优先级越低,越容易在溢出菜单里面显示。
import android.content.Context;
import android.util.Log;
import android.view.ActionProvider;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.SubMenu;
import android.view.View; /**
* 为了表示这个Action Provider是有子菜单的,需要重写hasSubMenu()方法并返回true,然后在onPrepareSubMenu通过调用SubMenu的add()方法添加子菜单。
* @author kchang
* @E-mail:kchang244@163.com
*/
public class MyActionProvider extends ActionProvider {
private static final String TAG = MyActionProvider.class.getSimpleName();
public MyActionProvider(Context context) {
super(context);
}
@Override
public View onCreateActionView() {
return null;
} @Override
public void onPrepareSubMenu(SubMenu subMenu) {
subMenu.clear();
subMenu.add("Sub Menu A").setIcon(R.drawable.call).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Log.d(TAG, "onMenuItemClick() Sub Menu A");
return true;
}
});
subMenu.add("Sub Menu B").setIcon(R.drawable.chat).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Log.d(TAG, "onMenuItemClick() Sub Menu B");
return true;
}
});
super.onPrepareSubMenu(subMenu);
} @Override
public boolean hasSubMenu() {
return true;
}
}

ActionBar大概就用到这些,如果要用actionBar.Tab那个也很容易不过不是很好用,tab+viewPager

 

Android_ActionBar的更多相关文章

随机推荐

  1. Before an Exam

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93241#problem/B (654123) http://codeforces.com ...

  2. Spark-1.2.2部署

    1.安装Scala 1.1解压和安装 在Scala官网http://www.scala-lang.org/download/下载Scala安装包,然后解压.(注:JDK的版本最好是1.7及以上,否则S ...

  3. 用CSS3把列表项目反转显示

    忘了哪儿的一个题目来着,说是把 一个列表 给翻转序列显示,比如 : 有一个列表如图: 翻转为  回复里面有人机智的使用 CSS3 的 transform:rotate(180deg); 实现了,引发众 ...

  4. 【转】Swig Getting Started

    Installation Via NPM: $ npm install swig --save Basic Usage Swig has multiple ways to compile and re ...

  5. 国内云计算的缺失环节: GPU并行计算(转)

    [IT时代周刊编者按]云计算特有的优点和巨大的商业前景,让其成为了近年来的IT界最热门词汇之一.当然,这也与中国移动互联网的繁荣紧密相关,它们需要有相应的云计算服务作为支撑.但本文作者祁海江结合自身的 ...

  6. 适合新手看的ref和out

    面试的时候一般很高的概率会问到ref和out的区别...我们死记硬背的话很难记住. 建议大家和我一样简单的探索一下.动手试一下就能记住了. 共同点是我们在使用ref或者out的时候一定要在写的方法里面 ...

  7. VUE.js 中取得后台原生HTML字符串 原样显示问题

    今天使用vue调试页面,发现了页面上的一个问题,后台数据传过来的HTML字符串并没有被转换为正常的HTML代码,一拍脑门,发现忘记转换了,于是满心欢喜加上了{{{}}}.但是之后构建发现报错: 为此去 ...

  8. VC++开发Windows系统全局钩子

    本文的大部分内容属于对一篇网文的实践与练习,同时参考的还有一本书,在此向网文与书的作者表示敬意. 这个程序是一个windows系统键盘监控程序,随着开机自动启动,可以监控系统中各用户的键盘,并将按键记 ...

  9. 如何利用Python绘制一个爱心

    刚学习Python几周,闲来无事,突然想尝试画一个爱心,步骤如下: 打开界面 打开Python shell界面,具体是Python语言的IDLE软件脚本. 2.建立脚本 单击左上角’File’,再单击 ...

  10. python脚本 读取excel格式文件 并进行处理的方法

    一.安装xlrd模块 pip install xlrd 二.读取excel文件 try: excel_obj = xlrd.open_workbook("文件路径") except ...