解决在viewpager中使用scrollerView导致的焦点的问题

horizontalScrollView.setOnTouchListener(new View.OnTouchListener() {
float rawX;
int mTouchSlop =  ViewConfiguration.get(getActivity()).getScaledTouchSlop();

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (event.getActionMasked()) {
        case MotionEvent.ACTION_DOWN:
            v.getParent().requestDisallowInterceptTouchEvent(true);
            rawX = event.getRawX();
            break;
        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
            v.getParent().requestDisallowInterceptTouchEvent(false);
            rawX = 0f;
            break;
        case MotionEvent.ACTION_MOVE:
            if (Math.abs(rawX - event.getRawX()) > mTouchSlop)
                v.getParent().requestDisallowInterceptTouchEvent(true);
            break;
    }
    return false;
}

以上的是在viewpager中使用horizontalScrollView 导致焦点发生冲突的解决方案,同时也是我们项目中仿照淘宝客户端时实现竖直方向的ViewPager中使用ScrollView时导致焦点发生冲突的解决方案。

时间: 2024-10-12 04:17:45

解决在viewpager中使用scrollerView导致的焦点的问题的相关文章

ViewPager中嵌套HorizontalScrollView导致无法滑动换页冲突解决

在之前的开发过程中,遇到过ViewPager中嵌套HorizontalScrollView导致无法横向滑动换页,最终也是通过对onTouchEvent方法判断滑动的状态来进行控制左右的滑动,注意的是onTouchEvent的事件分发的方向正好与onInterceptTouchEvent相反,是从下往上分发的,所以也会先执行子View的onTouchEvent方法(如果想进一步了解View的分发机制可以去进一步查阅资料,比如http://blog.csdn.net/a553181867/artic

[Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法

转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类控件时(比如TextView),注册ListView的监听setOnItemClickListener之后,当点击Item时候会触发onItemClick回调. 但是,当Item中存在Button(继承于Button)的控件时,onItemClick回调不会被触发. 解决方案: 在Item的布局文件

ViewPager中的子Activity无法响应OnActivityResult的解决方法

ViewPager子Activity通过startActivityForResult()跳转至OtherActivity,OtherActivity回传结果由ViewPager所在的父Activity捕获并下发至子Activity,具体操作如下: Step1:在子Activity中调用跳转语句. getParent().startActivityForResult(intent, 1); Step2:在父Activity中重写OnActivityResult方法. @Override prote

服务器中了病毒导致交换机无法正常运行

服务器:联想万全 问题:无法访问服务器上的网站,网断断断续续,最终导致服务器宕机. 原因:服务器中了病毒,导致IIS无法运行的同时,服务器也宕机. 解决方式: 首先,分析原因,IIS发布的所有网站无法运行,恢复初始IIS发布网站还是未成功.通过与团队技术人员沟通,最终确定操作系统中了病毒. 其次,恢复操作系统,恢复的过程中没有采用光驱安装,原因是光驱已损坏:用U盘恢复系统的时间失败,原因是从网上下了一个没有经过测试就使用的系统镜像,结果不兼容,导致安装失败: 再次,通过恢复先前的备份系统文件,文

解决Github使用Fastly CDN而导致不能加载网页的方法 转自 沙丘:http://www.enkoo.net/fastly-cdn-in-gifhub.html

Github现在基本属于"安全"网站,但Github使用fastly.net的CDN服务后,其网站在国内经常不能正常加载网页.github.global.ssl.fastly.net的亚洲IP一般为103.245.222.184,速度更快,但在国内经常"失效",而Hosts手动更改为欧美IP的方法目前有效.github.global.ssl.fastly.net简单测试,在Hosts中自定义github.global.ssl.fastly.net非亚洲IP目前有效.

友盟页面统计 - 关于Viewpager中的Fragment的生命周期

Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的.在此不表: Fragment从出现到广泛运用也有一段时间了.其标准生命周期也仅比Activity多出一些流程,如onCreateView(); Activity和Fragment在实际编码中必然是结合出现的,表现为Activity作为容器,装载有一个或若干个Fragment: 装载多个Fragment时,常常使用TabHost和Viewpager作为载体: 在实际编码中发现,Activity和

在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片

我们就把这个问题叫做图片查看器吧,它的主要功能有: 1.双击缩放图片. 2. 双指缩放图片. 3.单指拖拽图片. 为此这个图片查看器需要考虑以下的技术点: 一.双击缩放图片: 1.如果图片高度比屏幕的高度小得多,那么就将图片放大到高度与屏幕高度相等,否则就放大一个特定的倍数. 2.如何判断是否到达这个倍数来停止缩放. 3.判断完且停止放大后,图片可能已经超出了这个倍数需要的大小,如何回归到我们的目标大小. 4.判断完且停止缩小后,图片宽度可能已经小于屏幕宽度,在两边留下了空白,如何重置为原来的大

TTL传输中过期问题导致网站打不开

 TTL传输中过期问题导致网站打不开 简介:这几点很郁闷的一件事就是CSDN博客突然打不开了,看看博客也不行,我想着没道理啊, 在手机上能打开,别人机器上也能打开,别的网站也没问题,偶尔打开一次也是超慢,这是咋回事? 再就是前几天在装完系统之后也碰到过一个类似的问题,就是我IIS配置的本地的网站和 线上的网站出现了混淆的情况,我改了host文件,单当我ping域名时发现确是线上的IP 也是采用本文中介绍的刷新DNS缓存解决的,问题如图: 解决方案: 查了查,可能是产生了环路,或是局域网存在A

【原创】【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析

ViewPager中切换界面Fragment被销毁的问题分析 1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3 2.Fragment生命周期以及与Activity生命周期对比                    3.问题描述 按上图所说,只有当Fragment所Attached的Activity执行destroy的时候才会调用onDestoryView方法,然而现实是: 当界面由2切换到1的时候,3界面对应的Fragment实际上走了如下流程: 1 -->onP