Android ActionBar基本使用方法
Android ActionBar基本使用方法
不停息的脚步 发表于3年前
Android ActionBar基本使用方法
  • 发表于 3年前
  • 阅读 47
  • 收藏 1
  • 点赞 0
  • 评论 0

1.  获得ActionBar的方法

actionBar = this.getActionBar();

2. 下图所示Actionbar的区域:

 

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

 


代码实现:

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

 

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

String[] str = { "1", "2", "3", "4", "5" };
actionBar.setTitle("列表");
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(new ArrayAdapter<String>(
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是总是。
 
当点击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">
<menu>
<item
android:id="@+id/save"
android:icon="@drawable/ic_launcher"
android:orderInCategory="4"
android:showAsAction="ifRoom|withText"
android:title="item2"/>
<item
android:id="@+id/item8"
android:icon="@drawable/ic_launcher"
android:orderInCategory="5"
android:showAsAction="ifRoom|withText"
android:title="item3"/>
<item
android:id="@+id/item9"
android:icon="@drawable/ic_launcher"
android:orderInCategory="6"
android:showAsAction="ifRoom|withText"
android:title="item4"/>
</menu>
</item>

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

文章来源于安卓巴士,原文中有源码地址。

共有 人打赏支持
粉丝 6
博文 94
码字总数 12398
×
不停息的脚步
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: