1.在布局文件中使用自定义控件
<android.support.v4.view.ViewPager
....................
>
2.让类继承自FragmentActivity
public class CollectionDemoActivity extends FragmentActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection_demo);
ViewPager vp=(ViewPager) findViewById(R.id.vp);
vp.setAdapter(new MainAdapter(getSupportFragmentManager()));
}
//使用adapter来进行fragment页面的切换
public class MainAdapter extends FragmentStatePagerAdapter{
public MainAdapter( FragmentManager fm) {
super(fm);
}
//根据条目返回fragment
public Fragment getItem(int position) {
if(position==0){
return new HomeFragment();
}
else{
return new AppFragment();
}
}
//条目数
public int getCount() {
return 4;
}
}
}
3.写一个HomeFagment类继承自Fragment,reture 一个 view
4.在ActionBar中添加标签
public void onCreate(Bundle savedInstanceState) {
final ActionBar actionBar = getActionBar();
//在ActionBar中显示Tab标签
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//设置Tab监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
// 添加3个tabs,以及他们的Text和监听事件
for (int i = 0; i < 3; i++) {
actionBar.addTab(
actionBar.newTab()
.setText("Tab " + (i + 1))
.setTabListener(tabListener));
}
}
5.//当Tab改变时同时ViewPager随着改变---当ViewPager改变时同时Tab随着改变
public void onCreate(Bundle savedInstanceState) {
// tab改变的监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
...
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//tab的位置对应viewPager的位置
mViewPager.setCurrentItem(tab.getPosition());
}
...
};
//viewpager的监听事件
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
.....
public void onPageSelected(int position) {
//viewpager的位置对应tab的位置
getActionBar().setSelectedNavigationItem(position);
}
.....
});
}
<android.support.v4.view.ViewPager
....................
>
2.让类继承自FragmentActivity
public class CollectionDemoActivity extends FragmentActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection_demo);
ViewPager vp=(ViewPager) findViewById(R.id.vp);
vp.setAdapter(new MainAdapter(getSupportFragmentManager()));
}
//使用adapter来进行fragment页面的切换
public class MainAdapter extends FragmentStatePagerAdapter{
public MainAdapter( FragmentManager fm) {
super(fm);
}
//根据条目返回fragment
public Fragment getItem(int position) {
if(position==0){
return new HomeFragment();
}
else{
return new AppFragment();
}
}
//条目数
public int getCount() {
return 4;
}
}
}
3.写一个HomeFagment类继承自Fragment,reture 一个 view
4.在ActionBar中添加标签
public void onCreate(Bundle savedInstanceState) {
final ActionBar actionBar = getActionBar();
//在ActionBar中显示Tab标签
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//设置Tab监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
// 添加3个tabs,以及他们的Text和监听事件
for (int i = 0; i < 3; i++) {
actionBar.addTab(
actionBar.newTab()
.setText("Tab " + (i + 1))
.setTabListener(tabListener));
}
}
5.//当Tab改变时同时ViewPager随着改变---当ViewPager改变时同时Tab随着改变
public void onCreate(Bundle savedInstanceState) {
// tab改变的监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
...
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//tab的位置对应viewPager的位置
mViewPager.setCurrentItem(tab.getPosition());
}
...
};
//viewpager的监听事件
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
.....
public void onPageSelected(int position) {
//viewpager的位置对应tab的位置
getActionBar().setSelectedNavigationItem(position);
}
.....
});
}