我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android应用中的View出现滑动冲突如何解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android应用中的View出现滑动冲突如何解决

本篇文章给大家分享的是有关Android应用中的View出现滑动冲突如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1、外部滑动方向和内部滑动方向不一致

考虑这样一种场景,开发中我们经常使用ViewPager和Fragment配合使用所组成的页面滑动效果,很多主流的应用都会使用这样的效果。在这种效果中,可以使用左右滑动来切换界面,而每一个界面里面往往又都是ListView这样的控件。本来这种情况是存在滑动冲突的,只是ViewPager内部处理了这种滑动冲突。如果我们不使用ViewPager而是使用ScrollView,那么滑动冲突就需要我们自己来处理,否者造成的后果就是内外两层只有一层能滑动。

情况1的解决思路

对于第一种情况的解决思路是这样的:当用户左右滑动时,需要让外层的View拦截点击事件。当用户上下滑动时,需要让内部的View拦截点击事件(外层的View不拦截点击事件),这时候我们就可以根据它们的特性来解决滑动冲突。在这里我们可以根据滑动时水平滑动还是垂直滑动来判断谁来拦截点击事件。下面先介绍一种通用的解决滑动冲突的方法。

外部拦截法

外部拦截法是指:点击事件都经过父容器的拦截处理,如果父容器需要处理此事件就进行拦截,否者不拦截交给子View进行处理。这种方法比较符合点击事件的分发机制。外部拦截法需要重写父容器的onInterceptTouchEvent方法,在内部做相应的拦截即可。这种方法的伪代码如下:

@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {  int x=(int)ev.getX();  int y=(int)ev.getY();  boolean intercept=false;  switch (ev.getAction()){    //按下事件不要拦截,否则后续事件都会给ViewGroup处理    case MotionEvent.ACTION_DOWN:      intercept=false;      break;    case MotionEvent.ACTION_MOVE:      //如果是横向移动就进行拦截,否则不拦截      int deltaX=x-mLastX;      int deltaY=y-mLastY;      if(父容器需要当前点击事件){        intercept=true;      }else {        intercept=false;      }      break;    case MotionEvent.ACTION_UP:      intercept=false;      break;  }  mLastX = x;  mLastY = y;  return intercept;}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android应用中的View出现滑动冲突如何解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android应用中的View出现滑动冲突如何解决

本篇文章给大家分享的是有关Android应用中的View出现滑动冲突如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、外部滑动方向和内部滑动方向不一致考虑这样一种场景,
2023-05-31

Android应用中出现滑动冲突如何解决

今天就跟大家聊聊有关Android应用中出现滑动冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。场景一:类似于ViewPager嵌套Fragmnet并且在Fragmnet中
2023-05-31

Android应用的中滑动事件出现冲突如何解决

Android应用的中滑动事件出现冲突如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。外部拦截法外部拦截法是指在有点击事件时都要经过父容器,那么在父容器时如果需要拦截
2023-05-31

android中view手势滑动冲突的解决方法

Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent。public boolean disp
2022-06-06

在Android中使用listview时出现滑动冲突如何解决

在Android中使用listview时出现滑动冲突如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android listview的滑动冲突解决方法在Android开发
2023-05-31

浅谈Android View滑动冲突的解决方法

引言 这一篇文章我们就通过介绍滑动冲突的规则和一个实例来更加深入的学习View的事件分发机制。 1、外部滑动方向和内部滑动方向不一致 考虑这样一种场景,开发中我们经常使用ViewPager和Fragment配合使用所组成的页面滑动效果,很多
2022-06-06

使用ViewPager2时出现滑动冲突如何解决

今天就跟大家聊聊有关使用ViewPager2时出现滑动冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MainActivity.javapackage com.exampl
2023-06-14

Android应用中ViewPager出现事件冲突如何解决

这期内容当中小编将会给大家带来有关Android应用中ViewPager出现事件冲突如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android ViewPager的事件冲突的解决办法@Overr
2023-05-31

Android应用中SwipeRefreshLayout与ViewPager出现冲突如何解决

这篇文章给大家介绍Android应用中SwipeRefreshLayout与ViewPager出现冲突如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android 中SwipeRefreshLayout与Vie
2023-05-31

Android应用中ListView与ScrollView出现冲突如何解决

这期内容当中小编将会给大家带来有关Android应用中ListView与ScrollView出现冲突如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android ListView与ScrollVi
2023-05-31

Android中DrawerLayout+ViewPager滑动冲突的解决方法

DrawerLayout 是 Android 官方的侧滑菜单控件,而 ViewPager 相信大家都很熟悉了。今天这里就讲一下当在 DrawerLayout 中嵌套 ViewPager 时,要如何解决滑动冲突的问题,效果如下:首先,让我们先
2023-05-31

Android使用NestedScrollView内嵌RecycleView滑动冲突问题如何解决

这篇“Android使用NestedScrollView内嵌RecycleView滑动冲突问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,
2023-07-02

Android中RecyclerView嵌套滑动冲突解决的代码片段

在纵向RecyclerView嵌套横向RecyclerView时,如果纵向RecyclerView有下拉刷新功能,那么内部的横向RecyclerView的横向滑动体验会很差.(只有纯横向滑动时,才能滑动内部的横向RecyclerView,否
2022-06-06

Maven中出现JAR包冲突如何解决

本篇文章给大家分享的是有关出现Maven JAR包冲突如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JAR冲突产生的原因 Pom.xml / \ B
2023-06-06

CSS中出现样式冲突如何解决

今天就跟大家聊聊有关CSS中出现样式冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 细化选择符通过使用组合器(Combinator)将选择器的描述写得更加精确(参考C
2023-06-08

Android App中ViewPager所带来的滑动冲突问题解决方法

叙述 滑动冲突可以说是日常开发中比较常见的一类问题,也是比较让人头疼的一类问题,尤其是在使用第三方框架的时候,两个原本完美的控件,组合在一起之后,忽然发现整个世界都不好了。 关于滑动冲突 滑动冲突分类: 滑动冲突,总的来说就是两类。 1.同
2022-06-06

Android项目中使用listview嵌套scrollveiw出现冲突怎么解决

今天就跟大家聊聊有关Android项目中使用listview嵌套scrollveiw出现冲突怎么解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.使用网上用的动态改变listvi
2023-05-31

使用Viewpager时与轮播图出现冲突如何解决

今天就跟大家聊聊有关使用Viewpager时与轮播图出现冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实例如下://解决ViewPager和轮播图滑动冲突@Overrid
2023-05-31

android应用中出现Margin失效如何解决

android应用中出现Margin失效如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、在开发中发现这么一种现象: List中的Item是LinearLayout
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录