zoukankan      html  css  js  c++  java
  • Android 页面滑动

    1、PagerAdapter适配器
        
      PagerAdapter主要是viewpager的适配器,而viewPager是android.support.v4扩展中新添加的一个强大控件,可以实现控件的滑动效果,
    继承pageradapter,至少必须要重写以下四个方法:
    • instantiateItem(ViewGroup, int)
    • destroyItem(ViewGroup, int, Object)
    • getCount()
    • isViewFromObject(View, Object)
    具体含义以及使用如下:
    private class ViewPagerAdapter extends PagerAdapter {  
      
            // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量  
            @Override  
            public int getCount() {  
                return images.size();  
            }  
      
            // 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可  
            @Override  
            public boolean isViewFromObject(View arg0, Object arg1) {  
                return arg0 == arg1;  
            }  
      
            // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁  
            @Override  
            public void destroyItem(ViewGroup view, int position, Object object) {  
                view.removeView(images.get(position));  
            }  
      
            // 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可  
            @Override  
            public Object instantiateItem(ViewGroup view, int position) {  
                view.addView(images.get(position));  
                return images.get(position);  
            }  
        } 
    2、OnPageChangeListener接口
       
      OnPageChangeListener是ViewPager在处理滑动事件的时候需要用到的,这个接口需要实现三个方法:
    • onPageScrollStateChanged(int state)
            此方法是在状态改变时调用的,有三种状态(0,1,2)。当arg0=1时表示正在滑动,arg0=2时表示滑动完毕,arg0=3表示什么都没做。
    当页面开始滑动时,三种状态的变化顺序是(1,2,0)
     
    • onPageScrolled(int position,float positionOffset,int positionOffsetPixels)
            当页面滑动的时候会调用此方法,直到滑动完毕。这三个参数的含义分别为:
    1. position:当前页面,及滑动的页面
    2. positionOffset:当前页面滑动的比例,如果页面向右翻动,则值不断变大,最后在趋近1的时候变为0.如果向左翻动,则不断变小,最后变为0
    3. positionOffsetPixels:当前页面滑动像素,变化情况和positionOffset一致
     
    • onPageSelected(int position)
            此方法是页面跳转完后调用,position代表你当前选中页面的位置编号

     程序猿必读

  • 相关阅读:
    leetcode 131. Palindrome Partitioning
    leetcode 526. Beautiful Arrangement
    poj 1852 Ants
    leetcode 1219. Path with Maximum Gold
    leetcode 66. Plus One
    leetcode 43. Multiply Strings
    pytorch中torch.narrow()函数
    pytorch中的torch.repeat()函数与numpy.tile()
    leetcode 1051. Height Checker
    leetcode 561. Array Partition I
  • 原文地址:https://www.cnblogs.com/longzhongren/p/6075037.html
Copyright © 2011-2022 走看看