IT技术问答
联系方式
当前位置: 主页 > IT技术问答 >
Android ActionBar动作栏
编辑:admin 时间:2019-01-31

Android ActionBar动作栏


ActionBar动作栏

一、ActionBar:(动作栏)
(一)、简介:(扩展TitleBar)
Action bar(动作栏)是一个导航控件,用以代替传统屏幕顶端的标题栏。ActionBar是显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。类似于windows桌面程序的工具栏。
效果如下图: vcq9o6y/ydLUx9C7u7bguPYKICBGcmFnbWVudKGjCgoKCjxicj4KCgoKCgoKIDwzPi7Nu7P2z9TKvkFjdGl2aXR5tcTSu9Cp1tjSqrLZ1/ejqMjnobDXorLhobEsobC1x8K8obGhoqGwy9HL96GxLA=="设置"等)。将平时隐藏的选项菜单显示成活动项ActionItem。

上面的总结一下:Action bar就是替换3.0以前的tittle bar和menu。

        android:/>
【注意:android:showAsAction的属性值有:never、always、ifRoom、withText、collapseActionView】
 android:showAsAction属性值的解释:
    • never : 不将该MenuItem显示在ActionBar上(是默认值)
    • always : 总是将该MenuItem显示在ActionBar上
    • ifRoom : 当AcitonBar位置充裕时将该MenuItem显示在ActionBar上
    • withText : 将该MenuItem显示在ActionBar上,并显示该菜单项的文本
    • collapseActionView : 将该ActionView折叠成普通菜单项。最低API=14

      多个属性可以同时使用,使用“|”分隔。


      (三)、启动程序图标导航:(就是让APP的LOGO也变成可以点击的导航图标。)


      核心代码如下:
      
      
      
      
      
      
      
      
      
      
      
      
                      ActionBar actionBar = this.getActionBar();
                   actionBar.setDisplayHomeAsUpEnabled(true);
                   actionBar.setHomeButtonEnabled(true);
                   actionBar.setDisplayShowHomeEnabled(true);

              @Override
              public boolean onOptionsItemSelected(MenuItem item) {
      
      
      
      
      
      
      
      
                      switch (item.getItemId()) {
                      case android.R.id.home:
                              Intent intent = new Intent(this, MainActivity.class);
                              //将Activity栈中处于MainActivity主页面之上的Activity都弹出。
                             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                              startActivity(intent);
                              break;
                      case R.id.action_search:
                              break;
                      default:
                              return super.onOptionsItemSelected(item);
                      }
                      return true;
              }

      代码解释:

      actionBar = getActionBar(); 获取ActionBar对象。
      actionBar.setDisplayHomeAsUpEnabled(true); 设置是否将LOGO图标转成可点击的按钮,并在图
      标前添加一个向左的箭头。
      actionBar.setHomeButtonEnabled(true); 设置是否将LOGO图标转变成可点击的按钮。
      actionBar.setDisplayShowHomeEnabled(true); 设置是否显示LOGO图标。

      (四)、ActionBar中添加Action View:
      1、Action的学习要掌握如何将选项菜单显示成Action Item; 2、要掌握如何启动程序Logo导航; 3、ActionBar还可以添加Action View。 调用方式1为:在xml文件中写上android:actionLayout="@layout/布局名"。 调用方式2为:在xml文件中写上android:actionViewClass="android.widget.SearchView"。 4、示例代码:
      核心代码如下:
      
      
      
      
      
      
      
      
      
      
         
      
      
      
      
      
      
      
      
      
              android:id="@+id/action_search"
              android:orderInCategory="1"
              android:showAsAction="always"
              android:
              android:icon="@drawable/ic_launcher"
              android:actionViewClass="android.widget.SearchView"  //两种写法任选其一
              android:actionLayout="@layout/search” 
              />
      
      
      
      
      
      
      
      
          
      
      
      
      
      
      
      
              android:id="@+id/action_clock"
              android:orderInCategory="2"
              android:showAsAction="always"
              android:
              android:icon="@drawable/ic_launcher"
              android:actionLayout="@layout/clock"
              />
      
      
      
      
      
      【备注:】以上两个布局文件代码如下:
      
      
      
      
      
      
      
      
      一、显示搜索的布局文件:
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical" >
      
      
      
      
      
      
      
      
          
      
      
      
      
      
      
      
              android:id="@+id/search_main"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content" >
          

      
      
      
      
      

      二、显示时钟的布局文件:
      
      
      
      
      
      
      
      
      
      
      
      
      
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical" >
      
      
      
      
      
      
      
      
          
      
      
      
      
      
      
      
              android:id="@+id/analogClock_main"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content" />
      
      
      
      
      
      
      
      
      
      
      
      
      

      (五)、ActionBar在窗体底部显示:
      在清单配置文件中设置android:uiOptions属性为:splitActionBarWhenNarrow 可以在application或者activity节点中。
      1、核心代码:
       
      
      
      
      
      
      
      
      
      
                  android:name="com.steven.android23.tab5_fragmentactionbartwo.MainActivity"
                  android:label="@string/app_name" 
                  android:uiOptions="splitActionBarWhenNarrow">

      (六)、ActionBar保护现场:
      1、目的:当横竖屏切换时,会让页面重新加载。在tab模式下,如何记住之前的tab索引呢?需要保护现场。
      2、核心代码:
         @Override
      
      protected void onSaveInstanceState(Bundle outState) {
      Log.i(TAG, "==index:" + getActionBar().getSelectedNavigationIndex());
      outState.putInt("tabindex", getActionBar().getSelectedNavigationIndex());
      }


      @Override
      protected void onRestoreInstanceState(Bundle savedInstanceState) {
      getActionBar().setSelectedNavigationItem(
      savedInstanceState.getInt("tabindex"));
      }


      (七).ActionBar的其他操作:

      ①.设置ActionBar的自定义视图:

      bar.setDisplayShowCustomEnabled(true);

      bar.setDisplayHomeEnabled(false);

      bar.setCustomView(R.layout.custom_view);

      ②.设置ActionBar的Logo图标:

      bar.setLogo(R.drawable.logo);

      http://www.bkjia.com/Androidjc/862032.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/862032.htmlTechArticleAndroid ActionBar动作栏 ActionBar动作栏 一、ActionBar:(动作栏) (一)、简介:(扩展TitleBar) Action bar(动作栏)是一个导航控件,用以代替传...

      本文源自: 环亚娱乐