zoukankan      html  css  js  c++  java
  • 关于viewpager的滑动问题

    今天碰到很诡异的问题,viewpager中放置至少三张图片的时候能够正常实现循环滑动,只放置一张或者两张的时候就不行。

    后来发现问题症结:viewpager需要保证既可以向左滑动,又可以向右滑动,因此当前显示view的左侧和右侧都是存在的,只有超过这三个范围之外的才对其调用destory方法。

    循环实现的代码如下:

    package com.wot.cloudsensing.carrotfarm.adapter;
    
    import java.util.ArrayList;
    
    import com.wot.cloudsensing.carrotfarm.R;
    
    import android.content.Context;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.LinearLayout.LayoutParams;
    
    public class ViewPagerAdapter extends PagerAdapter {
        private ArrayList<ImageView> imageviews;
        private int size = 0;
    
        public ViewPagerAdapter(ArrayList<ImageView> views) {
            this.imageviews = views;
            this.size = views.size();
    
        }
    
        @Override
        public int getCount() {
            return Integer.MAX_VALUE;
        }
    
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            return arg0 == arg1;
        }
    
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            System.out.println("111  destroyItem position = "
                    + (position % imageviews.size()));
            ((ViewPager) container).removeView(imageviews.get(position
                    % imageviews.size()));
        }
    
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            System.out.println("111  instantiateItem instantiateItem  position = "
                    + (position % imageviews.size()));
            ((ViewPager) container).addView(
                    imageviews.get(position % imageviews.size()), 0);
            return imageviews.get(position % imageviews.size());
        }
    
    }
  • 相关阅读:
    年轻人如何去有效的学习(很好的鸡汤,一语惊醒梦中人)
    python基础07 函数
    python基础06 循环
    python基础05 缩进与选择
    python基础04 运算
    python基础03 序列
    python基础02 基本数据类型
    python基础01 Hello World
    CSS3(三)BFC、定位、浮动、7种垂直居中方法
    CSS3(二)Box Model、边距折叠、内联与块标签、CSSReset
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/3305865.html
Copyright © 2011-2022 走看看