ViewPager+Fragment要实现顶部标题栏,需要以下几个步骤:
1.首先在activity_main.xml布局文件中加入ViewPager组件
android:layout_width="match_parent"
android:layout_height="match_parent">
2.既然要实现左右的页面滑动,肯定要往ViewPager中添加一些Fragment,这里创建了3个Fragment的布局文件
这3个布局文件非常简单,跟Activity的布局用法一模一样,代码就不贴出来了,直接看Activity的java代码
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.ViewGroup;
public class MainActivity extends FragmentActivity {
private ViewPager m_vp;
private fragment1 mfragment1;
private fragment2 mfragment2;
private fragment3 mfragment3;
private ArrayList
ArrayList
private PagerTabStrip pagerTabStrip;
private PagerTitleStrip pagerTitleStrip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m_vp = (ViewPager)findViewById(R.id.viewpager);
pagerTabStrip=(PagerTabStrip) findViewById(R.id.pagertab);
//设置下划线的颜色
pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_green_dark));
//设置背景的颜色
pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark));
// pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagertab);
// //设置背景的颜色 pagerTitleStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark));
mfragment1 = new fragment1();
mfragment2 = new fragment2();
mfragment3 = new fragment3();
fragmentList = new ArrayList
fragmentList.add(mfragment1);
fragmentList.add(mfragment2);
fragmentList.add(mfragment3);
titleList.add("第一页 ");
titleList.add("第二页");
titleList.add("第三页 ");
m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()));
}
public class MyViewPagerAdapter extends FragmentPagerAdapter{
public MyViewPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
return fragmentList.get(arg0);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titleList.get(position);
}
}
}
3.需要设置一个Adapter,上面代码是继承了FragmentPagerAdapter,在里面重写了3个方法.往这个Viewpager中添加了要显示的3个页面fragment和对应的3个标题
4.Fragment中有个onCreateView方法,返回的是这个fragment的视图View,其他的生命周期方法都跟Activity一样,还要注意的是在回复View前一定要加入代码
5.运行程序运行效果:
关于Viewpager和Fragment还有很多其他很有用的方法,建议查看官网API详细了解
没吧错误的LOG贴出来,你只这样说谁有不是神仙哪里知道啊,再说你还确保了你的程序是对的,叫人怎么说!!!!
actionbar 的tab+viewpager+fragment
这里有详细讲解:
http://www.oschina.net/question/565065_138841