Android App开发中ViewPager组件的入门使用教程

2019-12-10 18:37:30于丽

布局代码分别如下:

layout1.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://www.easck.com/apk/res/android" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:background="#ffffff" 
  android:orientation="vertical" > 
   
 
</LinearLayout> 

layout2.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://www.easck.com/apk/res/android" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:background="#ffff00" 
  android:orientation="vertical" > 
   
 
</LinearLayout> 

layout3.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://www.easck.com/apk/res/android" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:background="#ff00ff" 
  android:orientation="vertical" > 
   
 
</LinearLayout><span style="color:#660000;"> 
</span> 

二、代码实战
先上整体代码,然后逐步讲解。

package com.example.testviewpage_1; 

import java.util.ArrayList; 
import java.util.List; 
import java.util.zip.Inflater; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
 
 
public class MainActivity extends Activity { 
 
  private View view1, view2, view3; 
  private ViewPager viewPager; //对应的viewPager 
   
  private List<View> viewList;//view数组 
   
   
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
     
    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    LayoutInflater inflater=getLayoutInflater(); 
    view1 = inflater.inflate(R.layout.layout1, null); 
    view2 = inflater.inflate(R.layout.layout2,null); 
    view3 = inflater.inflate(R.layout.layout3, null); 
     
    viewList = new ArrayList<View>();// 将要分页显示的View装入数组中 
    viewList.add(view1); 
    viewList.add(view2); 
    viewList.add(view3); 
     
     
    PagerAdapter pagerAdapter = new PagerAdapter() { 
       
      @Override 
      public boolean isViewFromObject(View arg0, Object arg1) { 
        // TODO Auto-generated method stub 
        return arg0 == arg1; 
      } 
       
      @Override 
      public int getCount() { 
        // TODO Auto-generated method stub 
        return viewList.size(); 
      } 
       
      @Override 
      public void destroyItem(ViewGroup container, int position, 
          Object object) { 
        // TODO Auto-generated method stub 
        container.removeView(viewList.get(position)); 
      } 
       
      @Override 
      public Object instantiateItem(ViewGroup container, int position) { 
        // TODO Auto-generated method stub 
        container.addView(viewList.get(position)); 
         
         
        return viewList.get(position); 
      } 
    }; 
     
     
    viewPager.setAdapter(pagerAdapter); 
     
  } 
 
 
}