ViewPager的应用

1.在布局文件里加入
<android.support.v4.view.ViewPager   
android:id="@+id/viewpager"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:layout_gravity="center" > 
2.加载要显示的页卡
LayoutInflater lf = getLayoutInflater().from(this);  
view1 = lf.inflate(R.layout.layout1, null);  
view2 = lf.inflate(R.layout.layout2, null);  
  viewList = new ArrayList<View>();
viewList.add(view1);  
viewList.add(view2);  
3.重写PagerAdapter
public class MyViewPagerAdapter extends PagerAdapter{  
     private List<View> mListViews;  
     public MyViewPagerAdapter(List<View> mListViews){
     this.mListViews = mListViews;  
     }  
     @Override  
Public void destroyItem(ViewGroup container, int position, Object 
object)  {     
    container.removeView(mListViews.get(positin);//删除页卡  
}  
@Override  
Public Object instantiateItem(ViewGroupcontainer,  int position) {  
//这个方法用来实例化页卡         
           container.addView(mListViews.get(position), 0); //添加页卡  
           return mListViews.get(position);  
      }  
  
     @Override  
      public int getCount() {           
           return  mListViews.size();//返回页卡的数量  
     } 
      @Override  
      public boolean isViewFromObject(View arg0, Object arg1) {
            return arg0==arg1;//官方提示这样写  
      }  
  }  
mViewPager=(ViewPager)this.findViewById(R.id.viewpager);
mViewPager.setAdapter(MyViewPagerAdapter);
mTextName01.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
mViewPager.setCurrentItem(LEFT_PAGE);
}
});
mTextName02.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
mViewPager.setCurrentItem(RIGHT_PAGE);
}
});
mViewPager.setOnPageChangeListener(newOnPageChangeListener(){
//这个方法会在屏幕滚动过程中不断被调用,有三个参数,第一个arg0和当前页面
index是一致的;arg1是当前页面的滑动比例,如果页面向右翻动,这个值不断变大,
最 后在趋近1的情况后突变为0;如果页面向左翻动,这个值不断变小,最后变为0。
arg2是当前页面滑动像素,变化情况和arg1一致。
@Override
public void onPageScrolled(int arg0, float arg1, int arg2){}
//这个方法在手指操作屏幕的时候发生变化,有三个值:0(end),1 ( press ),
2 ( up )。
@Override
public void onPageScrollStateChanged(int arg0){}
//这个方法有一个参数arg0,代表那个页面被选中。
@Override
public void onPageSelected(int arg0){
switch (arg0){
case 0:{
mTextName01.setSelected(true);
mTextName02.setSelected(false);
}
break;
case 1:{
mTextName01.setSelected(false);
mTextName02.setSelected(true);
}
break;
default:
break;
}
}
});
这三个方法的执行顺序为:当用手指拖动翻页时,最先执行一遍 onPageScrollStateChange(1),然后不断执行onPageScrolled,放手指的时候,直接
立即执行一次onPageScrollStateChanged(2),然后立即执行一次onPageSelected,
然后再不断执行onPageScrollStateChanged,最后执行一次
onPageScrollStateChaged(0)。
实现左右的页面滑动,往ViewPager中添加一些View视图或者Fragment.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值