ViewPager使用1-基本用法

 

 ViewPager :

     页面切换组件,可以实现页面左右切换 ,ViewPager需要绑定一个特有的Adapter-PagerAdapter

    

使用步骤:

1 实现PagerAdapter,并且实现里面的方法

2 创建三个布局xml,每个布局为一个pageView ,并将三个View添加到一个List中

3 创建主的Activity的布局,并拿到ViewPager、设置布局List数据、设置PagerAdapter

 

代码: 

1 主Activity代码

   

public class ViewPagerActivity extends Activity {

	 //定义相关变量  
    private View v1,v2,v3;  

    private ViewPager vPager;  
    private ArrayList<View> aList;  
    private MyPageAdapter mAdapter; 

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_view_pager);
		
		vPager = (ViewPager) findViewById( R.id.viewpager) ; 
		
		  //动态加载三个View  
        LayoutInflater li = getLayoutInflater();  
        v1 = li.inflate(R.layout.activity_view_pager2, null);  
        v2 = li.inflate(R.layout.activity_view_pager3, null);  
        v3 = li.inflate(R.layout.activity_view_pager4, null);

        aList = new ArrayList<View>();  
        aList.add(v1);  
        aList.add(v2);  
        aList.add(v3);  
        mAdapter = new MyPageAdapter(aList);          
        vPager.setAdapter(mAdapter);  
	}
}

  2 PagerAdapter实现类 

  

public class MyPageAdapter extends PagerAdapter {  
  
    private ArrayList<View> viewLists;      
  
    public MyPageAdapter() {}     
    public MyPageAdapter(ArrayList<View> viewLists)  
    {  
        super();  
        this.viewLists = viewLists;  
    }  
      
     //获得viewpager中有多少个view
    @Override  
    public int getCount() {       
        return viewLists.size();  
    }  
    
    /**
     * 通常这么写就可以了
     */
    @Override  
    public boolean isViewFromObject(View view, Object object) {  
        return view == object;  
    }  
     
    /**
     *     ①将给定位置的view添加到ViewGroup(容器)中,创建并显示出来
     *     ②返回一个代表新增页面的Object(key),通常都是直接返回view本身就可以了,
     */
    @Override  
    public Object instantiateItem(ViewGroup container, int position) {  
        container.addView(viewLists.get(position));  
        return viewLists.get(position);  
    }  
  
    //移除一个给定位置的页面。
    @Override  
    public void destroyItem(ViewGroup container, int position, Object object) {  
        container.removeView(viewLists.get(position));  
    }  
}

 3 带有ViewPager的Xml

  

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/LinearLayout1"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    tools:context=".MainActivity" >  
  
    <TextView  
        android:gravity="center"   
        android:layout_width="match_parent"  
        android:layout_height="40dp"  
        android:text="简单的ViewPager使用"  
        android:background="#FCBC12"/>  
      
      
    <android.support.v4.view.ViewPager    
        android:id="@+id/viewpager"    
        android:layout_width="wrap_content"    
        android:layout_height="wrap_content"    
        android:layout_gravity="center" />        
</LinearLayout> 

  4 其他三个用在Pager中的布局都一样,只是背景颜色不一样而已

   

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    android:gravity="center"   
    android:background="#FF6666">      
    <TextView   
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="第一个Page"      
    />  
</LinearLayout> 

 

 

 

你可能感兴趣的:(viewpager)