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程序设计有所帮助。