首先加入ViewPager
<android.support.v4.view.ViewPager
android:id = "@+id/pager"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"/>
加载显示的页卡
将layout布局装换为View对象
(1) LayoutInflater if = getLayoutInflater().from(this);
if.inflater(resource,root);
(2) View.inflater(context,resource,root);
配置Adapter适配器
(1) PagerAdapter 数据源: List<View>
(2) FragmentPagerAdapter 数据源:List<Fragment>
(3) FragmentStatePagerAdapter 数据源:List<Fragment>
下面是代码示例:
1.代码组成:一个含有ViewPager的主布局,四个view布局展示四个页面,一个主类,,一个适配器
主布局代码如下:
<LinearLayout xmlns:android="" xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center">
</android.support.v4.view.ViewPager>> </LinearLayout>
2.四个展示页面View,大家可以自行编写,只要能区分就行,可以设置一些不同的文字,或者不同的颜色
3.主类代码:
public class MainActivity extends Activity {private ViewPager pager;private List<View> pagerList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pagerList = new ArrayList<View>();/** 通过ViewPager添加布局* */View view1 = View.inflate(this, R.layout.view1, null);View view2 = View.inflate(this, R.layout.view2, null);View view3 = View.inflate(this, R.layout.view3, null);View view4 = View.inflate(this, R.layout.view4, null);pagerList.add(view1);pagerList.add(view2);pagerList.add(view3);pagerList.add(view4);/** 实例化pager控件* */pager = (ViewPager) findViewById(R.id.pager);MyPagerAdapter adapter = new MyPagerAdapter(pagerList);pager.setAdapter(adapter);}}
4.适配器代码:
public class MyPagerAdapter extends PagerAdapter{private List<View> pagerList;//构造函数public MyPagerAdapter(List<View> pagerList) {// TODO Auto-generated method stubthis.pagerList = pagerList;}//返回页面的数量@Overridepublic int getCount() {// TODO Auto-generated method stubreturn pagerList.size();} //View是否来自于对象@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}//实例化一个页面@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(pagerList.get(position));return pagerList.get(position);}//销毁一个页面@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stubcontainer.removeView(pagerList.get(position));}}
代码下载地址:
当然我们还可以给每个页面加上标题:我们可以在ViewPager中使用下面两个控件
(1)android:support.v4.view.PagerTabStrip 它是ViewPager的子类需要写在ViewPager里面
(2)android.support.v4.view.PagerTitleStrip
通过根据自己的设计(1)top置顶,(2)置底bottom来设置布局
主类需要添加如下代码:
private List<String> titleList;
/** 为ViewPager设置标题* */titleList = new ArrayList<String>();titleList.add("红色");titleList.add("黄色");titleList.add("绿色");titleList.add("蓝色");
MyPagerAdapter适配器中需要修改构造函数,添加标题方法:
//添加标题的方法@Overridepublic CharSequence getPageTitle(int position) {// TODO Auto-generated method stubreturn titleList.get(position);}
代码下载地址:
我们还可以给标题的底线设置自定义颜色样式等:
接受失败也等于给了自己从零开始的机会,接受失败更是一种智者的宣言和呐喊;