http://www.apkbus.com/android-105602-1-1.html

对于这ActionBar我想很多人都想了解一下到底是怎么一个使用方法,以及它都存在哪些可操作的和使用的地方。
如下图所示:
 
这便是ActionBar的基本内容。
获得ActionBar的方法很简单actionBar = this.getActionBar();
1.Home图标区域:这里的图标当然可以在清单文件中定义,也可以在代码中定义,但是在代码中定义需要请求设置的"资格",即需要添加以下代码
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, resId);
而如果想要对home图标进行点击时间处理,则需要在为这个icon“使能”:
actionBar.setDisplayHomeAsUpEnabled(true);
此home图标的id便是androi.R.id.home;
这个home点击事件的监听是在public boolean onMenuItemSelected(int featureId, MenuItem item)里面获取的,例如:
[mw_shl_code=java,true]@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(this, "home", 1).show();
break;
}
}[/mw_shl_code]
2.标题区域,相应的也有
actionBar.setDisplayShowTitleEnabled(true); 
当然我们也可以给标题栏设置自己的风格,但是那样也必须在setContentView(R.layout.custom_title);之前添加
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
然后就可以启用
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, resId);
resId便是自己想要的布局风格。
3.选项卡区域:这个区域,相信便是大家最想也是最近常使用的区域了,它同时有3中不同风格的类型:
ActionBar.NAVIGATION_MODE_TABS  ActionBar.NAVIGATION_MODE_LIST  ActionBar.NAVIGATION_MODE_STANDARD
ActionBar.NAVIGATION_MODE_STANDARD对于这个区域就不用多说了。
而对于前面两种如下图所示:ActionBar.NAVIGATION_MODE_TABS
当点第一个按钮时:
 
代码的实现其实也很简单:
[mw_shl_code=java,true]actionBar.setTitle("选项卡");
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar.newTab().setText("Tab1")
.setTabListener(MainActivity.this));
actionBar.addTab(actionBar.newTab().setText("Tab2")
.setTabListener(MainActivity.this));
actionBar.addTab(actionBar.newTab().setText("Tab3")
.setTabListener(MainActivity.this));[/mw_shl_code]
这里必须为tab添加tablistener事件,如果要操作tab切换事件只需要实现监听方法即可。
implements ActionBar.TabListener
当点击第二个按钮时:
 
显示一个可以点击下拉的列表,代码如下
[mw_shl_code=java,true]String[] str = { "1", "2", "3", "4", "5" };
actionBar.setTitle("列表");
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(new ArrayAdapter(
MainActivity.this,
android.R.layout.simple_spinner_item, str),
MainActivity.this);
[/mw_shl_code]
同样的需要实现以下它的点击监听事件implements ActionBar.OnNavigationListener 实现接口的方法便可对列表项进行你想要的操作。
4.菜单区域:其实这个区域也就相当于菜单,只是它将menu放到ActionBar这里而已,事件的监听和布局跟操作menu是一样的。
    而如果你想要将menu放到ActionBar上,只需要将你需要填放的item添加一个android:showAsAction这样的属性
他同时提供给你几个可选的类型:ifRoom|withText 的意思上显示icon和字体 never是从不,always是总是。
如图所示:  

当点击item1这个图标区域时:出现一个:submenu。顾名思义 这个下拉的item就是从属于item1的submenu,如果你想要达到这样的效果,只需要在menu中添加一个submenu便可实现这个效果例如本实例的简单实现:
[mw_shl_code=java,true] android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher"
android:orderInCategory="3"
android:showAsAction="ifRoom|withText"
android:title="item1">


android:id="@+id/save"
android:icon="@drawable/ic_launcher"
android:orderInCategory="4"
android:showAsAction="ifRoom|withText"
android:title="item2"/>
android:id="@+id/item8"
android:icon="@drawable/ic_launcher"
android:orderInCategory="5"
android:showAsAction="ifRoom|withText"
android:title="item3"/>
android:id="@+id/item9"
android:icon="@drawable/ic_launcher"
android:orderInCategory="6"
android:showAsAction="ifRoom|withText"
android:title="item4"/>

[/mw_shl_code]
这样就能达到如此效果。对于item的监听已经强调过,它就是menu的item,所以监听事件的处理在
public boolean onMenuItemSelected(int featureId, MenuItem item)
了解了这些,相信大家对这些区域对应的点击事件的处理都不是难事。

更多相关文章

  1. Android文件或文件夹内容改变监听器(FileObserver)
  2. SDK大全2的读书笔记
  3. EventBus的简单用法及介绍
  4. Android(安卓)EventBus的使用
  5. 利用AccessibilityService实现“微信红包”插件
  6. Android(安卓)RecyclerView和ListView的异同
  7. android如何得到控件大小 OnGlobalLayoutListener
  8. Android(安卓)6.0事件分发机制源码解析
  9. Android点击事件分发流程

随机推荐

  1. Google公布Android 4.1完整功能
  2. Android中用webView引用js
  3. ADB 实现Android Http 代理
  4. Android 异步加载图片(扩展后)
  5. 【Android外文翻译 - 01】避免内存泄漏
  6. Android(安卓)短信拦截+来去电话拦截
  7. Android利用SQLite制作最简单成语小词典
  8. android获取图片文件头信息
  9. Android的屏幕多样性支持
  10. 关于Android(安卓)ListView组件中android