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);   
		}
	}


相关文章
|
6月前
|
缓存 安全 数据库
Android学习笔记4
Android学习笔记4
25 0
|
6月前
|
XML 数据库 数据安全/隐私保护
Android学习笔记3
Android学习笔记3
113 0
|
6月前
|
XML Java Android开发
Android学习笔记2
Android学习笔记2
49 0
|
6月前
|
XML Java Linux
Android学习笔记1
Android学习笔记1
31 0
|
8月前
|
存储 Java API
Android逆向 | 基础篇 - Java 学习笔记03
Android逆向 | 基础篇 - Java 学习笔记03
|
8月前
|
Java 编译器 Android开发
Android逆向 | 基础篇 - Java 学习笔记02
Android逆向 | 基础篇 - Java 学习笔记02
|
8月前
|
Java 编译器 Android开发
Android逆向 | 基础篇 - Java 学习笔记01
Android逆向 | 基础篇 - Java 学习笔记01
|
Java 开发工具 Android开发
Android中的Binder学习笔记
Android中的Binder学习笔记
Android中的Binder学习笔记
|
JSON 前端开发 Java
Java WEB 与 android | 学习笔记
快速学习 Java WEB 与 android。
Java WEB 与 android | 学习笔记
|
Web App开发 小程序 安全
mPaaS 小程序介绍+接入 mPaaS 小程序并实现启动 Android 版(二)| 学习笔记
快速学习 mPaaS 小程序介绍+接入 mPaaS 小程序并实现启动 Android 版。
646 0
mPaaS 小程序介绍+接入 mPaaS 小程序并实现启动 Android 版(二)| 学习笔记