FlycoBanner 一张图片禁止滚动

Flyco大神的Android View轮播控件使用简单方便,属性丰富,扩展性强。项目地址:https://github.com/H07000223/FlycoBanner_Master
只是控件有些时间没有更新了,现在需求是一张图片不能滚动,我们只有改改大神的代码了
我们找到类BaseBanner,找到protected ViewPager mViewPager;所以我们要修改ViewPager,当只有一张的时候我们不滚动
1.创建一个可以禁止滑动的ViewPager

public class NoScrollViewPager extends ViewPager {

    private boolean noScroll = false;

    public NoScrollViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public NoScrollViewPager(Context context) {
        super(context);
    }


    /**
     * 供外部调用的方法:设置是否可以滑动
     * @param noScroll true:表示禁止滑动,false:表示可以滑动
     */
    public void setNoScroll(boolean noScroll) {
        this.noScroll = noScroll;
    }

    @Override
    public void scrollTo(int x, int y) {
        super.scrollTo(x, y);
    }

    @Override
    public boolean onTouchEvent(MotionEvent arg0) {
        /* return false;//super.onTouchEvent(arg0); */
        if (noScroll)
            return false;
        else
            return super.onTouchEvent(arg0);
    }

    /**
     * 返回true:表示拦截
     * 返回false:表示不拦截
     * @param arg0
     * @return
     */
    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) {
        if (noScroll)
            return false;
        else
            return super.onInterceptTouchEvent(arg0);
    }

    @Override
    public void setCurrentItem(int item, boolean smoothScroll) {
        super.setCurrentItem(item, smoothScroll);
    }

    @Override
    public void setCurrentItem(int item) {
        super.setCurrentItem(item);
    }
}

2.把BaseBanner里的ViewPager换成NoScrollViewPager
3.在setViewPager()方法中,添加判断

  if (mDatas.size() <= 1){
            mViewPager.setNoScroll(true);
        }

4.在startScroll()中修改,只有大于一张图才显示小点

        if (mDatas.size() > 1){
            //create indicator
            View indicatorViews = onCreateIndicator();
            if (indicatorViews != null) {
                mLlIndicatorContainer.removeAllViews();
                mLlIndicatorContainer.addView(indicatorViews);
            }
        }

这样就完成了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,678评论 25 708
  • 一、Android开发初体验 二、Android与MVC设计模式模型对象存储着应用的数据和业务逻辑。模型类通常用来...
    为梦想战斗阅读 948评论 0 3
  • 我一直不敢开这闪门 自从上月尾 开始黯然神伤 公司的仓库 设在小区地库 得到公司没中标 多少次我泪眼迷离 大大小小...
    恰妈阅读 251评论 13 18
  • 今天完成了第三十张脑图,百米马拉松跑完三分之一了,心里真是百感交集啊!这期间,有灵感短路的时候,也有画到凌晨一点多...
    zzvivi阅读 742评论 5 8
  • 逛超市大家一定不陌生,可是逛超市去赚钱你知道吗?不要急,听我慢慢道来。周末我最爱干的事情就是去超市买买买,工作了一...
    南山南之陌小陌阅读 282评论 1 1