&&&&&& 上一节所讲内容为actionbar概述与创建,本节主要讲解actionbar如何添加tabs标签和下拉导航。
&&&&&& 一、添加标签 tabs
&&&&&& 在actionbar中实现标签页可以实现android.app.actionbar.tablistener ,重写ontabselected、ontabunselected和ontabreselected方法来关联fragment。代码如下:
java代码
- private&class&mytablistener&implements&actionbar.tablistener&{ &&
- &&private&tabcontentfragment&mfragment; &&
- &&&public&tablistener(tabcontentfragment&fragment)&{ &&
- &&&mfragment&=&fragment; &&
- &&}&&@override&&
- &&public&void&ontabselected(tab&tab,&fragmenttransaction&ft)&{ &&
- &&ft.add(r.id.fragment_content,&mfragment,&null); &&
- &&} &&
- &@override&&
- &public&void&ontabunselected(tab&tab,&fragmenttransaction&ft)&{ &&
- &ft.remove(mfragment); &&
- &} &&
- &@override&&
- &public&void&ontabreselected(tab&tab,&fragmenttransaction&ft)&{ &&
- &} &&
- &&
- }&&
&&&&&& 接下来我们创建actionbar在activity中,代码如下:
java代码
- @override&&
- protected&void&oncreate(bundle&savedinstancestate)&{ &&
- super.oncreate(savedinstancestate); &&
- setcontentview(r.layout.main); &&
- final&actionbar&actionbar&=&getactionbar();&//提示getactionbar方法一定在setcontentview后面 &&
- actionbar.setnavigationmode(actionbar.navigation_mode_tabs); &&
- actionbar.setdisplayoptions(0,&actionbar.display_show_title); &&
- fragment&artistsfragment&=&new&artistsfragment(); &&
- actionbar.addtab(actionbar.newtab().settext(r.string.tab_artists).settablistener(new&tablistener(artistsfragment))); &&
- fragment&albumsfragment&=&new&albumsfragment(); &&
- actionbar.addtab(actionbar.newtab().settext(r.string.tab_albums).settablistener(new&tablistener(albumsfragment))); &&
- }&&
&&&&&& 二、添加下拉导航 drop-down navigation
&&&&&& 创建一个spinneradapter提供下拉选项,和tab方式不同的是drop-down只需要修改下setnavigationmode的模式,将actionbar.navigation_mode_tabs改为actionbar.navigation_mode_list,最终改进后的代码为:
java代码
- actionbar&actionbar&=&getactionbar(); &&
- actionbar.setnavigationmode(actionbar.navigation_mode_list); &&
- actionbar.setlistnavigationcallbacks(mspinneradapter,&mnavigationcallback);&&
&&&&&& 上面我们通过setlistnavigationcallbacks方法绑定一个spinneradapter控件,具体的onnavigationlistener代码示例为:
java代码
- monnavigationlistener&=&new&onnavigationlistener()&{ &&
- &string[]&strings&=&getresources().getstringarray(r.array.action_list); &&
- &&@override&&
- &&public&boolean&onnavigationitemselected(int&position,&long&itemid)&{ &&
- &&listcontentfragment&newfragment&=&new&listcontentfragment(); &&
- &&fragmenttransaction&ft&=&openfragmenttransaction(); &&
- &&ft.replace(r.id.fragment_container,&newfragment,&strings[position]); &&
- &&ft.commit(); &&
- &&return&true; &&
- } &&
- &&
- };&&
&&&&&& 而其中的listcontentfragment的代码为:
java代码
- public&class&listcontentfragment&extends&fragment&{ &&
- private&string&mtext; &&
- &&
- @override&&
- public&void&onattach(activity&activity)&{ &&
- super.onattach(activity); &&
- mtext&=&gettag(); &&
- } &&
- &&
- @override&&
- public&view&oncreateview(layoutinflater&inflater,&viewgroup&container, &&
- bundle&savedinstancestate)&{ &&
- textview&text&=&new&textview(getactivity()); &&
- text.settext(mtext); &&
- return&text; &&
- } &&
- }&&
&
本文发布:android开发网