actionbar与viewpager的联合使用(android 3.0 ,level 11以上)

package com.example.pad;

import java.util.ArrayList;
import java.util.List;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;

public class MainActivity extends Activity implements TabListener,
		OnPageChangeListener {
	private ActionBar actionBar;
	private ViewPager viewPager;
	private List<View> viewList;
	private MainPageAdapter viewPagerAdapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		viewPager = (ViewPager) findViewById(R.id.view_pager);
		actionBar = getActionBar();
		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
		actionBar.setDisplayShowTitleEnabled(false);
		actionBar.setDisplayShowHomeEnabled(true);
		Tab tab = actionBar.newTab().setText("第一页").setTabListener(this);
		actionBar.addTab(tab);

		tab = actionBar.newTab().setText("第二页").setTabListener(this);
		actionBar.addTab(tab);

		tab = actionBar.newTab().setText("第三页").setTabListener(this);
		actionBar.addTab(tab);
		viewList = new ArrayList<View>();
		View view1 = (View) View.inflate(this, R.layout.layout1, null);
		View view2 = (View) View.inflate(this, R.layout.layout2, null);
		View view3 = (View) View.inflate(this, R.layout.layout3, null);
		viewList.add(view1);
		viewList.add(view2);
		viewList.add(view3);
		viewPagerAdapter = new MainPageAdapter();
		viewPager.setAdapter(viewPagerAdapter);
		viewPager.setCurrentItem(0);
		viewPager.setOnPageChangeListener(this);
	}

	@Override
	public void onTabReselected(Tab tab, FragmentTransaction ft) {
	}

	@Override
	public void onTabSelected(Tab tab, FragmentTransaction ft) {
		viewPager.setCurrentItem(tab.getPosition());
	}

	@Override
	public void onTabUnselected(Tab tab, FragmentTransaction ft) {
	}

	@Override
	public void onPageScrollStateChanged(int arg0) {
	}

	@Override
	public void onPageScrolled(int arg0, float arg1, int arg2) {
	}

	@Override
	public void onPageSelected(int arg0) {
		actionBar.getTabAt(arg0).select();
	}

	public class MainPageAdapter extends PagerAdapter {
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			View view = viewList.get(position);
			viewPager.addView(view);
			return view;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			container.removeView(viewList.get(position));
		}

		@Override
		public int getCount() {
			return viewList.size();
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}

	}
}

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</FrameLayout>


你可能感兴趣的:(android,viewpager,Actionbar)