Android ViewPager PagerAdapter

来源:互联网 发布:mac关闭最小化快捷键 编辑:程序博客网 时间:2024/06/06 08:39
package com.ktc.thatflower.activity;import java.util.ArrayList;import android.app.Activity;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.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.ktc.thatflower.R;public class GuideViewActivity extends Activity implements OnPageChangeListener {private ViewPager viewPager;private ArrayList<View> pageViews;private ViewGroup main;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);LayoutInflater inflater = getLayoutInflater();pageViews = new ArrayList<View>();pageViews.add(inflater.inflate(R.layout.guideview_a, null));pageViews.add(inflater.inflate(R.layout.guideview_b, null));pageViews.add(inflater.inflate(R.layout.guideview_c, null));main = (ViewGroup) inflater.inflate(R.layout.activity_guideview, null);viewPager = (ViewPager) main.findViewById(R.id.guidePages);setContentView(main);viewPager.setAdapter(new GuidePageAdapter());// 加载指定项viewPager.setCurrentItem(1);viewPager.setPageMargin(30);viewPager.setOnPageChangeListener(this);}class GuidePageAdapter extends PagerAdapter {// 返回页卡的数量@Overridepublic int getCount() {return pageViews.size();}// 官方提示这样写@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}// 删除页卡 避免内存溢出@Overridepublic void destroyItem(View arg0, int arg1, Object arg2) {((ViewPager) arg0).removeView(pageViews.get(arg1));}// 添加页卡@Overridepublic Object instantiateItem(View arg0, int arg1) {((ViewPager) arg0).addView(pageViews.get(arg1));return pageViews.get(arg1);}}/* * 此方法是在状态改变的时候调用,其中arg0这个参数 有三种状态(0,1,2)。 * arg0==1的时辰默示正在滑动, * arg0==2的时辰默示滑动完毕了, * arg0==0的时辰默示什么都没做。 * 当页面开始滑动的时候,三种状态的变化顺序为(1,2,0) */@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}/* * 当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法会一直被调用。  * 其中三个参数的含义分别为:  * arg0:当前页面,及你点击滑动的页面 * arg1:当前页面偏移的百分比  * arg2:当前页面偏移的像素位置 */@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}    //此方法是页面跳转完后得到调用,arg0是你当前选中的页面的Position@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stub}}


activity_guideview、xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/green"    android:clipToPadding="true"    android:fitsSystemWindows="true" >    <android.support.v4.view.ViewPager        android:id="@+id/guidePages"        android:layout_width="fill_parent"        android:layout_height="fill_parent" /></RelativeLayout>


0 0