zoukankan      html  css  js  c++  java
  • Android ActionBar使用方法

    对于这ActionBar我想很多人都想了解一下到底是怎么一个使用方法,以及它都存在哪些可操作的和使用的地方。
    如下图所示:
    <ignore_js_op> 
    这便是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)里面获取的,例如:

    [Java] 纯文本查看 复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
    Toast.makeText(this, "home", 1).show();
    break;
    }
    }


    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
    当点第一个按钮时:
    <ignore_js_op> 
    代码的实现其实也很简单:

    [Java] 纯文本查看 复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    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));


    这里必须为tab添加tablistener事件,如果要操作tab切换事件只需要实现监听方法即可。
    implements ActionBar.TabListener
    当点击第二个按钮时:
    <ignore_js_op> 
    显示一个可以点击下拉的列表,代码如下

    [Java] 纯文本查看 复制代码
    1
    2
    3
    4
    5
    6
    7
    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 实现接口的方法便可对列表项进行你想要的操作。
    4.菜单区域:其实这个区域也就相当于菜单,只是它将menu放到ActionBar这里而已,事件的监听和布局跟操作menu是一样的。
        而如果你想要将menu放到ActionBar上,只需要将你需要填放的item添加一个android:showAsAction这样的属性
    他同时提供给你几个可选的类型:ifRoom|withText 的意思上显示icon和字体 never是从不,always是总是。
    如图所示: <ignore_js_op> 

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

    [Java] 纯文本查看 复制代码
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <item
    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)
    了解了这些,相信大家对这些区域对应的点击事件的处理都不是难事。
    最后贴下源码,方便对照: <ignore_js_op> MyActionBar.rar (982.67 KB, 下载次数: 5126) 

  • 相关阅读:
    搜狗输入法用户体验评价
    第二阶段团队冲刺5
    第二阶段团队冲刺4
    进度总结报告十四
    第二阶段团队冲刺3
    寻找水王-课上练习
    第二阶段团队冲刺2
    大型网站处理高并发要点技术
    php 处理上百万条的数据库如何提高处理查询速度
    php一次性大量数据入库解决方法
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/iewo4329753298.html
Copyright © 2011-2022 走看看