Android编程之ActionBar Tabs用法实例分析
本文实例讲述了Android编程之ActionBarTabs用法。分享给大家供大家参考,具体如下:
这里主要实现用Tab切换不同的Fragment,点击View显示or隐藏ActionBar,把ActionBar设为透明,使界面更加友好,详细代码见资源里的ActionBarTabs。
ActionBarTab主要用于Fragment之间的切换,其必须要设置ActionBar.TabListener,详细代码如下
ActionBarActivity.Java:
importandroid.app.ActionBar; importandroid.app.Activity; importandroid.app.FragmentTransaction; importandroid.app.ActionBar.Tab; importandroid.os.Bundle; importandroid.os.CountDownTimer; importandroid.view.MotionEvent; importandroid.view.Window; publicclassActionBarActivityextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); //使ActionBar变得透明 requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); setContentView(R.layout.main); finalActionBaractionBar=getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //removetheactivitytitletomakespacefortabs actionBar.setDisplayShowTitleEnabled(false); AFragmentaFragment=newAFragment(); actionBar.addTab(actionBar.newTab().setText("Tab-A") .setTabListener(newListenerA(aFragment))); BFragmentbFragment=newBFragment(); actionBar.addTab(actionBar.newTab().setText("Tab-B") .setTabListener(newListenerB(bFragment))); } //点击显示or隐藏ActionBar publicbooleanonTouchEvent(MotionEventevent){ ActionBarbar=getActionBar(); switch(event.getAction()){ caseMotionEvent.ACTION_UP: if(bar.isShowing())bar.hide(); elsebar.show(); break; default: break; } returntrue; } privateclassListenerAimplementsActionBar.TabListener{ privateAFragmentmFragment; //Calledtocreateaninstanceofthelistenerwhenaddinganewtab publicListenerA(AFragmentfragment){ mFragment=fragment; } publicvoidonTabSelected(Tabtab,FragmentTransactionft){ ft.add(R.id.fragment,mFragment,null); } publicvoidonTabUnselected(Tabtab,FragmentTransactionft){ ft.remove(mFragment); } publicvoidonTabReselected(Tabtab,FragmentTransactionft){ //donothing} } } privateclassListenerBimplementsActionBar.TabListener{ privateBFragmentmFragment; //Calledtocreateaninstanceofthelistenerwhenaddinganewtab publicListenerB(BFragmentfragment){ mFragment=fragment; } publicvoidonTabSelected(Tabtab,FragmentTransactionft){ ft.add(R.id.fragment,mFragment,null); } publicvoidonTabUnselected(Tabtab,FragmentTransactionft){ ft.remove(mFragment); } publicvoidonTabReselected(Tabtab,FragmentTransactionft){ //donothing} } } }
其中涉及到两个Fragment,在前面Fragment的笔记中讲过,这里就不再赘述。类AFragment实现如下,BFragment实现与这类似:
publicclassAFragmentextendsFragment{ publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer, BundlesavedInstanceState){ returninflater.inflate(R.layout.alayout,container,false); } }
希望本文所述对大家Android程序设计有所帮助。