ActionBar粗谈

ActionBar.NAVIGATION_MODE_LIST:

ActionBar bar = this.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

bar.setListNavigationCallbacks(newSimpleSpinnerArrayAdapter(this),new ListListener(this,this));

SimpleSpinnerArrayAdapter继承ArrayAdapter<String>实现SpinnerAdapter接口

ListListener关键要实现ActionBar.OnNavigationListener接口

 

ActionBar.NAVIGATION_MODE_STANDARD:
ActionBar bar = this.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

之后若添加Tab且不为Tab设置监听,不会报错.Tab也不会显示.

 

ActionBar.NAVIGATION_MODE_TABS:

ActionBar bar = this.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

TabListener tl = new TabListener(this,this);

Tab tab1 = bar.newTab();

tab1.setText("Tab1");

tab1.setTabListener(tl);

bar.addTab(tab1);

如果忘记在添加到操作栏的选项卡上调用setTabListener(),将会获得一个表明需要监听器的运行时错误.

 

ActionBar同时可以设置自定义的View

ActionBar bar = this.getActionBar();

bar.setCustomView(view);

在ActionBar的中间位置添加自定义的View

 

由于ActionBar的右边栏是Menu的集合在Activity:onCreateOptionsMenu(Menumenu)中添加

@Override
 public boolean onCreateOptionsMenu(Menu menu){
  MenuInflater menuInflater =getMenuInflater();
  menuInflater.inflate(R.menu.main,menu);
  returnsuper.onCreateOptionsMenu(menu);
}

而在R.menu.main的\res\menu\main.xml文件中,可以定义普通的Menu也可以定义自定义的

<menu xmlns:android="http://schemas.android.com/apk/res/android">

   <item
       android:id="@+id/menu_refresh"
       android:icon="@drawable/ic_action_refresh"
       android:orderInCategory="2"
       android:showAsAction="always"
       android:title="@string/menu_refresh"/>

   <item
       android:id="@+id/menu_search"
       android:icon="@drawable/ic_action_search"
       android:orderInCategory="1"
       android:showAsAction="always"
       android:title="@string/menu_search">
       <menu>
           <item
               android:id="@+id/menu_search1"
               android:icon="@drawable/ic_action_search"
               android:title="@string/menu_search"/>
        </menu>
   </item>

    <itemandroid:id="@+id/menu_search3"
      android:title="Search"
      android:orderInCategory="0"
      android:showAsAction="ifRoom"
      android:actionViewClass="android.widget.SearchView" />

   <item
       android:id="@+id/menu_share"
       android:icon="@drawable/ic_menu_share"
       android:orderInCategory="1"
       android:showAsAction="never"
       android:title="@string/menu_share"/>

</menu>

android:showAsAction让Menu如何显示,分为四种:

ifRoom;always;never;withText

ifRoom表示如果有空间就显示

always表示总是显示

never则会在最右边的其他Menu的列表中显示

withText无非就是显示加上Text

android:actionViewClass

可以自定相应的View,这边调用的是系统自带的android.widget.SearchView:点击Menu使Menu变长并成为搜索框

 

ActionBar的样式目前只知道能从Manifest中通过android:theme来指定自定义的theme来操作,自定义的theme必须继承ActionBar或者Holo,列如:parent="@android:style/Theme.WithActionBar"


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值