您的位置:首页 > 移动开发 > Android开发

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

2013-06-26 09:53 507 查看
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;
}

}
}

[code]<?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>

http://my.oschina.net/eclipse88/blog/82715 [/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐