zoukankan      html  css  js  c++  java
  • 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
        
       }表示在前一个页面滑动到后一个页面的时候,在前一个页面滑动前调用的方法。

  • 相关阅读:
    Dubbo本地开发技巧
    MongoDB基于GridFS管理文件
    Java MongoDB插入
    java MongoDB查询(二)复杂查询
    java MongoDB查询(一)简单查询
    Java 连接MongoDB
    MongoDB简述
    Bitmap.Config 详解
    ViewGroup 和 View 事件传递及处理小谈
    瀑布流ListView
  • 原文地址:https://www.cnblogs.com/jarrah/p/2445431.html
Copyright © 2011-2022 走看看