android的actionbar及菜单机制,Android ActionBar基本使用方法

1.  获得ActionBar的方法

actionBar = this.getActionBar();

2. 下图所示Actionbar的区域:

4803da3e65deb753fc4221cd53b67d5b.png

2.1 Home图标区域

这里的图标可以在清单文件中定义,也可以在代码中定义,但是在代码中定义需要设置"权限",即添加以下代码

requestWindowFeature(Window.FEATURE_LEFT_ICON);

setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, resId);

而如果想对home图标进行点击事件处理,则需要在为这个icon“使能”:

actionBar.setDisplayHomeAsUpEnabled(true);

此home图标的id便是androi.R.id.home;事件的监听是在public boolean onMenuItemSelected(int featureId, MenuItem item)里面获取的:

@Override

public boolean onMenuItemSelected(int featureId, MenuItem item) {

switch (item.getItemId()) {

case android.R.id.home:

Toast.makeText(this, "home", 1).show();

break;

}

}

2.2 标题区域

actionBar.setDisplayShowTitleEnabled(true);

当然我们也可以给标题栏设置自己的风格,但是那样也必须设置权限:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.custom_title);

然后就可以设置自己想要的布局风格resId为当前风格。

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, resId);

2.3 选项卡区域

这个区域同时有3种不同风格的类型:

ActionBar.NAVIGATION_MODE_TABS

ActionBar.NAVIGATION_MODE_LIST

ActionBar.NAVIGATION_MODE_STANDARD

2.3.1 ActionBar.NAVIGATION_MODE_TABS

eff31bf9f74c775efdf8a8a070d1cefd.png

代码实现:

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));

2.3.2 ActionBar.NAVIGATION_MODE_LIST

这里必须为tab添加tablistener事件,如果要操作tab切换事件只需要实现监听方法即可。

implements ActionBar.TabListener

e3564af34df09baa65e3413e7fed5c9e.png

当点击第二个按钮时:显示一个可以点击下拉的列表,代码如下

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);

需要实现以下它的点击监听事件implements ActionBar.OnNavigationListener 实现接口的方法便可对列表项进行你想要的操作。

2.4.菜单区域

这个区域也就相当于菜单,只是它将menu放到ActionBar这里而已,事件的监听和布局跟操作menu是一样的。

而如果你想要将menu放到ActionBar上,只需要将你需要填放的item添加一个android:showAsAction属性

他同时提供几个可选的类型:

ifRoom|withText 的意思上显示icon和字体

never是从不,

always是总是。

fbe3b6c30e81e9c0908a56ee18372af6.png 

当点击item1这个图标区域时:出现一个:submenu。顾名思义 这个下拉的item就是从属于item1的submenu,如果你想要达到这样的效果,只需要在menu中添加一个submenu便可实现这个效果例如本实例的简单实现:

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"/>

这样就能达到如此效果。对于item的监听已经强调过,它就是menu的item,所以监听事件的处理在public boolean onMenuItemSelected(int featureId, MenuItem item)

了解了这些,相信大家对这些区域对应的点击事件的处理都不是难事。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值