Android ActionBar Tabs學習筆記
本例主要實現用Tab切換不同的Fragment,點擊View顯示or隱藏ActionBar,把ActionBar 設為透明,使界面更加友好,詳細代碼見資源里的ActionBarTabs。
ActionBar Tab主要用于Fragment之間的切換,其必須要設置ActionBar.TabListener,詳細代碼如下ActionBarActivity.java:
import android.app.ActionBar;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.app.ActionBar.Tab;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.MotionEvent;
import android.view.Window;
public class ActionBarActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//使ActionBar變得透明
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.main);
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// remove the activity title to make space for tabs
actionBar.setDisplayShowTitleEnabled(false);
AFragment aFragment = new AFragment();
actionBar.addTab(actionBar.newTab().setText("Tab-A")
.setTabListener(new ListenerA(aFragment)));
BFragment bFragment = new BFragment();
actionBar.addTab(actionBar.newTab().setText("Tab-B")
.setTabListener(new ListenerB(bFragment)));
}
//點擊顯示or隱藏ActionBar
public boolean onTouchEvent(MotionEvent event){
ActionBar bar = getActionBar();
switch(event.getAction()){
case MotionEvent.ACTION_UP:
if(bar.isShowing()) bar.hide();
else bar.show();
break;
default:
break;
}
return true;
}
private class ListenerA implements ActionBar.TabListener {
private AFragment mFragment;
// Called to create an instance of the listener when adding a new tab
public ListenerA(AFragment fragment) {
mFragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.add(R.id.fragment, mFragment, null);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(mFragment);
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// do nothing }
}
}
private class ListenerB implements ActionBar.TabListener {
private BFragment mFragment;
// Called to create an instance of the listener when adding a new tab
public ListenerB(BFragment fragment) {
mFragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.add(R.id.fragment, mFragment, null);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(mFragment);
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// do nothing }
}
}
}
其中涉及到兩個Fragment,在前面Fragment的筆記中講過,這里就不再贅述。類AFragment實現如下,BFragment實現與這類似:
public class AFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.alayout, container, false);
}
}
文章出處:http://blog.csdn.net/flying_tao/article/details/6615171
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!