&&&&&& 上一节所讲内容为actionbar概述与创建,本节主要讲解actionbar如何添加tabs标签和下拉导航。

&&&&&& 一、添加标签 tabs

&&&&&& 在actionbar中实现标签页可以实现android.app.actionbar.tablistener ,重写ontabselected、ontabunselected和ontabreselected方法来关联fragment。代码如下:

java代码
  1. private&class&mytablistener&implements&actionbar.tablistener&{ &&
  2. &&private&tabcontentfragment&mfragment; &&
  3. &&&public&tablistener(tabcontentfragment&fragment)&{ &&
  4. &&&mfragment&=&fragment; &&
  5. &&}&&@override&&
  6. &&public&void&ontabselected(tab&tab,&fragmenttransaction&ft)&{ &&
  7. &&ft.add(r.id.fragment_content,&mfragment,&null); &&
  8. &&} &&
  9. &@override&&
  10. &public&void&ontabunselected(tab&tab,&fragmenttransaction&ft)&{ &&
  11. &ft.remove(mfragment); &&
  12. &} &&
  13. &@override&&
  14. &public&void&ontabreselected(tab&tab,&fragmenttransaction&ft)&{ &&
  15. &} &&
  16. &&
  17. }&&

&&&&&& 接下来我们创建actionbar在activity中,代码如下:

java代码
  1. @override&&
  2. protected&void&oncreate(bundle&savedinstancestate)&{ &&
  3. super.oncreate(savedinstancestate); &&
  4. setcontentview(r.layout.main); &&
  5. final&actionbar&actionbar&=&getactionbar();&//提示getactionbar方法一定在setcontentview后面 &&
  6. actionbar.setnavigationmode(actionbar.navigation_mode_tabs); &&
  7. actionbar.setdisplayoptions(0,&actionbar.display_show_title); &&
  8. fragment&artistsfragment&=&new&artistsfragment(); &&
  9. actionbar.addtab(actionbar.newtab().settext(r.string.tab_artists).settablistener(new&tablistener(artistsfragment))); &&
  10. fragment&albumsfragment&=&new&albumsfragment(); &&
  11. actionbar.addtab(actionbar.newtab().settext(r.string.tab_albums).settablistener(new&tablistener(albumsfragment))); &&
  12. }&&

&&&&&& 二、添加下拉导航 drop-down navigation

&&&&&& 创建一个spinneradapter提供下拉选项,和tab方式不同的是drop-down只需要修改下setnavigationmode的模式,将actionbar.navigation_mode_tabs改为actionbar.navigation_mode_list,最终改进后的代码为:

java代码
  1. actionbar&actionbar&=&getactionbar(); &&
  2. actionbar.setnavigationmode(actionbar.navigation_mode_list); &&
  3. actionbar.setlistnavigationcallbacks(mspinneradapter,&mnavigationcallback);&&

&&&&&& 上面我们通过setlistnavigationcallbacks方法绑定一个spinneradapter控件,具体的onnavigationlistener代码示例为:

java代码
  1. monnavigationlistener&=&new&onnavigationlistener()&{ &&
  2. &string[]&strings&=&getresources().getstringarray(r.array.action_list); &&
  3. &&@override&&
  4. &&public&boolean&onnavigationitemselected(int&position,&long&itemid)&{ &&
  5. &&listcontentfragment&newfragment&=&new&listcontentfragment(); &&
  6. &&fragmenttransaction&ft&=&openfragmenttransaction(); &&
  7. &&ft.replace(r.id.fragment_container,&newfragment,&strings[position]); &&
  8. &&ft.commit(); &&
  9. &&return&true; &&
  10. } &&
  11. &&
  12. };&&

&&&&&& 而其中的listcontentfragment的代码为:

java代码
  1. public&class&listcontentfragment&extends&fragment&{ &&
  2. private&string&mtext; &&
  3. &&
  4. @override&&
  5. public&void&onattach(activity&activity)&{ &&
  6. super.onattach(activity); &&
  7. mtext&=&gettag(); &&
  8. } &&
  9. &&
  10. @override&&
  11. public&view&oncreateview(layoutinflater&inflater,&viewgroup&container, &&
  12. bundle&savedinstancestate)&{ &&
  13. textview&text&=&new&textview(getactivity()); &&
  14. text.settext(mtext); &&
  15. return&text; &&
  16. } &&
  17. }&&

&

本文发布:android开发网
本文地址:http://www.jizhuomi.com/android/course/399.html
2013-2-28 20:12:33
发布:鸡啄米 分类:android开发教程 浏览: 评论:0