Android viewPager实现翻动

  1.ViewFlipper控件虽然也可以实现翻页功能,但是如果想要实现像UC浏览器,自带图库的翻动中还可以看到前一页的一半,后一页的一半这样的效果就要用到这个ViewPager啦。

他是android官方support包里面的。

  2.添加这个包,你可以手动build path里面添加。也可以用Eclipse控件添加,首先,右键点击项目-》Android tool-》add compatibility library联网的状态下就可以自动加入的了。

主要是这个包:Android-surpport-v4.jar

  3.ViewPager的用法。1.在你的XML布局里面想其他控件一样设定好属性,不过控件名就要用全名了:

     <android.support.v4.view.ViewPager
            android:id="@+id/myviewpager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            />

  这样以后呢,就要再写一个ViewPager的专用Adapter,要继承PagerAdapter:

  这里我给出个参考吧:

  

package com.myTest;

import java.util.ArrayList;

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;

public class MyViewPageAdapter extends PagerAdapter{

	private ArrayList<View> views=new ArrayList<View> ();
	public MyViewPageAdapter(ArrayList<View> views){
		this.views=views;
	}
	
	@Override
	public void destroyItem(View container, int position, Object object) {
		// TODO Auto-generated method stub
		((ViewPager)container).removeView(views.get(position));
	}
	
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return views.size();
	}
	@Override
	public Object instantiateItem(View arg0, int arg1){
		((ViewPager)arg0).addView(views.get(arg1),0);
		return views.get(arg1);
		
	}
	
  	
	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		// TODO Auto-generated method stub
		return arg0==(arg1);
	}

}

  这样之后,把你需要展示出来的每一个页面也就是每一个View放到一个ArrayList里面保存起来。传过去给Adapter。

最后的话,就是把ViewPager实例化,也就是findViewById()了。接着就调用ViewPager的setAdapter就OK了

这里是我的运行效果:

ViewPager的onPageChangeListener里面的一些方法参数:

onPageSelected(int arg0){

}

arg0是表示你当前选中的页面,这事件是在你页面跳转完毕的时候调用的。

public void onPageScrollStateChanged(int arg0) {
    // TODO Auto-generated method stub
    
    
   } arg0 ==1的时候表示正在滑动,arg0==2的时候表示滑动完毕了,arg0==0的时候表示什么都没做,就是停在那。

public void onPageScrolled(int arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub
    
   }表示在前一个页面滑动到后一个页面的时候,在前一个页面滑动前调用的方法。

原文地址:https://www.cnblogs.com/jarrah/p/2445431.html