• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--

硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了青岛蓝色硅谷新闻,美国硅谷新闻,硅谷新闻,尚硅谷html5视频,尚硅谷html5等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--


重写dispatchTouchEvent,并且要在按下的时候 getParent().requestDisallowInterceptTouchEvent(true);

判断滑动方向,在X轴和Y轴滑动的绝对值谁大就是在什么方向滑动

一,竖直方向滑动 getParent().requestDisallowInterceptTouchEvent(false);

二,水平方向滑动

2.1,当滑动到ViewPager的第0个页面,并且是从左到右滑动 getParent().requestDisallowInterceptTouchEvent(false);

2.2,当滑动到ViewPager的最后一个页面,并且是从右到左滑动 getParent().requestDisallowInterceptTouchEvent(false); 2.3,其他 getParent().requestDisallowInterceptTouchEvent(true);

public class HorizontalScrollViewPager extends ViewPager {
    public HorizontalScrollViewPager(Context context) {
        super(context);
    }

    public HorizontalScrollViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    /**
     * 起始坐标
     */
    private float startX;
    private float startY;

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {

        switch (ev.getAction()){
            case MotionEvent.ACTION_DOWN:
                //请求父层视图不拦截,当前控件的事件
                getParent().requestDisallowInterceptTouchEvent(true);//都把事件传给当前控件(HorizontalScrollViewPager)
                //1.记录起始坐标
                startX = ev.getX();
                startY = ev.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                //2.来到新的坐标
                float endX = ev.getX();
                float endY = ev.getY();
                //3.计算偏移量
                float distanceX = endX - startX;
                float distanceY = endY - startY;
                //4.判断滑动方向
                if(Math.abs(distanceX) > Math.abs(distanceY)){
                    //水平方向滑动
//                    2.1,当滑动到ViewPager的第0个页面,并且是从左到右滑动
//                    getParent().requestDisallowInterceptTouchEvent(false);
                    if(getCurrentItem()==0&&distanceX >0){
                        getParent().requestDisallowInterceptTouchEvent(false);
                    }

//                    2.2,当滑动到ViewPager的最后一个页面,并且是从右到左滑动
//                    getParent().requestDisallowInterceptTouchEvent(false);
                    else if((getCurrentItem()==(getAdapter().getCount()-1))&& distanceX <0){
                        getParent().requestDisallowInterceptTouchEvent(false);
                    }
//                    2.3,其他,中间部分
//                    getParent().requestDisallowInterceptTouchEvent(true);
                    else{
                        getParent().requestDisallowInterceptTouchEvent(true);
                    }
                }else{
                    //竖直方向滑动
                    getParent().requestDisallowInterceptTouchEvent(false);
                }
                break;
            case MotionEvent.ACTION_UP:
                break;
            default:
                break;
        }
        return super.dispatchTouchEvent(ev);
    }
}

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 硅谷新闻11--极光推送的集成,硅谷新闻11--极光
  • 硅谷新闻7--顶部轮播图循环播放,7--循环播放
  • 硅谷新闻9--图片三级缓存,
  • 硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--
  • 硅谷新闻4--解决页签手指按下从左到右滑动的bug,硅谷4--
  • 硅谷新闻2--禁止viewpager预加载,2--viewpager

相关文章

  • 2017-05-26mongodb3.0.7生产环境扩容存储记录
  • 2017-05-26【转载】ReactiveX 的理念和特点,转载reactivex理念
  • 2017-05-26Android_LIFE帮(基于最新百度地图API的开源项目)
  • 2017-05-26Android客户端性能优化(魅族资深工程师毫无保留奉献)
  • 2017-05-26Android Studio 1.5.1 JNI 编程
  • 2017-05-227.2.2 Android JSON数据解析
  • 2017-05-26Android学习笔记-Button(按钮),android-button
  • 2017-05-26ListView嵌套出现的问题,listview嵌套出现
  • 2017-05-26MAT使用入门,mat入门
  • 2017-05-26安卓第十五天笔记-图形图像一些简单处理,安卓第图形图像

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • tingkman-tcp-ip协议分析和实现5-路由的添加、查找、选择
    • Android系统的五种数据存储形式(一),android数据存储
    • Mobizen免帐号版,Mobizen帐号版
    • 【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系
    • Android 学习1----控件的学习,android1----
    • 支持缩放的fresco图片控件 —— fresco sample: ZoomableDraweeView,
    • DB2_Tips_Tricks_04 远程数据库之间复制数据
    • android开发中常见布局的注意点,android开发布局
    • 手机影音5--视频播放器的基本功能(2),5--基本功能
    • GitLab误删 300G数据的一点启示

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有