iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android中DrawerLayout+ViewPager滑动冲突的解决方法
  • 807
分享到

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

androiddrawerlayoutviewpager 2023-05-31 02:05:52 807人浏览 安东尼
摘要

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

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

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

首先,让我们先来解决 DrawerLayout 和 ViewPager 的侧滑事件冲突。当 DrawerLayout 中嵌套 ViewPager 时,侧滑默认是执行 DrawerLayout 的侧滑事件,因为 Android 的事件分发是从 外层 ViewGroup 向里逐级传递到 View 的。
所以会先执行 DrawerLayout 的 onTouchEvent 方法:

@Overridepublic boolean onTouchEvent(MotionEvent ev) {  mLeftDragger.processTouchEvent(ev);   mRightDragger.processTouchEvent(ev);   final int action = ev.getAction(); boolean wantTouchEvents = true;   switch (action & MotionEventCompat.ACTION_MASK) {     case MotionEvent.ACTION_DOWN: {       final float x = ev.getX();       final float y = ev.getY();       mInitialMotionX = x;       mInitialMotionY = y;       mDisallowInterceptRequested = false;       mChildrenCanceledTouch = false;       break;     }     case MotionEvent.ACTION_UP: {       final float x = ev.getX();       final float y = ev.getY();       boolean peekinGonly = true;      final View touchedView = mLeftDragger.findTopChildUnder((int) x, (int) y);       if (touchedView != null && isContentView(touchedView)) {         final float dx = x - mInitialMotionX;         final float dy = y - mInitialMotionY;         final int slop = mLeftDragger.getTouchSlop();         if (dx * dx + dy * dy < slop * slop) {           // Taps close a dimmed open drawer but only if it isn't locked open.           final View openDrawer = findOpenDrawer();           if (openDrawer != null) {             peekingOnly = getDrawerLockMode(openDrawer) == LOCK_MODE_LOCKED_OPEN;           }         }        }       closeDrawers(peekingOnly);       mDisallowInterceptRequested = false;       break;     }     case MotionEvent.ACTION_CANCEL: {       closeDrawers(true);       mDisallowInterceptRequested = false;      mChildrenCanceledTouch = false; break;     }   }   return wantTouchEvents;}

--结束END--

本文标题: Android中DrawerLayout+ViewPager滑动冲突的解决方法

本文链接: https://www.lsjlt.com/news/222889.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Android中DrawerLayout+ViewPager滑动冲突的解决方法
    DrawerLayout 是 Android 官方的侧滑菜单控件,而 ViewPager 相信大家都很熟悉了。今天这里就讲一下当在 DrawerLayout 中嵌套 ViewPager 时,要如何解决滑动冲突的问题,效果如下:首先,让我们先...
    99+
    2023-05-31
    android drawerlayout viewpager
  • ViewPager2滑动冲突的解决方法
    ViewPager2滑动冲突解决,供大家参考,具体内容如下 本文章对ViewPager2的滑动冲突没有提供完善的解决方案,仅为巩固解决滑动冲突方面的知识 首先看看没有解决滑动冲突时...
    99+
    2024-04-02
  • Android之解决RecyclerView与NestedScrollView的滑动冲突方法
    1、解决RecyclerView与NestedScrollView的滑动冲突 问题一:当我们滑动RecyclerView组件时,上方的轮播图并没有进行滑动(NestedScrollView没有滑动,即...
    99+
    2023-09-15
    android java 开发语言
  • Android中怎么解决嵌套滑动冲突
    本篇文章为大家展示了Android中怎么解决嵌套滑动冲突,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一.会产生滑动冲突的情况那么什么时候会产生滑动冲突呢?比如你有个activity,activit...
    99+
    2023-05-30
    android
  • Android应用中出现滑动冲突如何解决
    今天就跟大家聊聊有关Android应用中出现滑动冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。场景一:类似于ViewPager嵌套Fragmnet并且在Fragmnet中...
    99+
    2023-05-31
    android roi
  • Android应用中的View出现滑动冲突如何解决
    本篇文章给大家分享的是有关Android应用中的View出现滑动冲突如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、外部滑动方向和内部滑动方向不一致考虑这样一种场景,...
    99+
    2023-05-31
    view roi android
  • Android应用中SwipeRefreshLayout与ViewPager出现冲突如何解决
    这篇文章给大家介绍Android应用中SwipeRefreshLayout与ViewPager出现冲突如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android 中SwipeRefreshLayout与Vie...
    99+
    2023-05-31
    android swiperefreshlayout viewpager
  • Android应用的中滑动事件出现冲突如何解决
    Android应用的中滑动事件出现冲突如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。外部拦截法外部拦截法是指在有点击事件时都要经过父容器,那么在父容器时如果需要拦截...
    99+
    2023-05-31
    android roi
  • Android应用中ViewPager出现事件冲突如何解决
    这期内容当中小编将会给大家带来有关Android应用中ViewPager出现事件冲突如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android ViewPager的事件冲突的解决办法@Overr...
    99+
    2023-05-31
    android viewpager age
  • View事件分发原理和ViewPager+ListView嵌套滑动冲突怎么解决
    今天小编给大家分享一下View事件分发原理和ViewPager+ListView嵌套滑动冲突怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面...
    99+
    2023-06-30
  • Android使用NestedScrollView 内嵌RecycleView滑动冲突问题解决
    目录场景描述实现思路问题和优化优化场景描述 使用NestedScrollView 内嵌RecycleView时,当用户上滑时,NestedScrollView需要首先响应上滑事件,直...
    99+
    2024-04-02
  • 在Android中使用listview时出现滑动冲突如何解决
    在Android中使用listview时出现滑动冲突如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android listview的滑动冲突解决方法在Android开发...
    99+
    2023-05-31
    listview android roi
  • Android ViewPager自定义轮播图并解决播放冲突
    本文实例为大家分享了Android ViewPager自定义轮播图,并解决播放冲突,供大家参考 首先介绍一下这篇小代码: 注释全面,简单易学,适用初学者,图片自拟!!! 一定要将Ar...
    99+
    2024-04-02
  • Android使用NestedScrollView内嵌RecycleView滑动冲突问题如何解决
    这篇“Android使用NestedScrollView内嵌RecycleView滑动冲突问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,...
    99+
    2023-07-02
  • git解决冲突的方法
    这篇文章将为大家详细讲解有关git解决冲突的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。git解决冲突的方法:首先在项目目录上点击右键,点击双向红箭头的位置;然后选择需要修改冲突的文件,选择merg...
    99+
    2023-06-06
  • 使用ViewPager2时出现滑动冲突如何解决
    今天就跟大家聊聊有关使用ViewPager2时出现滑动冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MainActivity.javapackage com.e...
    99+
    2023-06-14
  • jQuery 名称冲突的解决方法
    jQuery 使用名为 noConflict() 的方法来解决该问题。 var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。 示...
    99+
    2022-11-21
    jQuery 名称冲突
  • android侧滑菜单控件DrawerLayout使用方法详解
    drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内...
    99+
    2023-05-30
  • Android 中ScrollView与ListView冲突问题的解决办法
    Android 中ScrollView与ListView冲突问题的解决办法自定义MyListViewpublic class MyListView extends ListView { public MyListView(Context...
    99+
    2023-05-30
    android scrollview listview
  • 解决Maven依赖冲突的方法
    目录背景处理回顾背景 在项目中screw-core依赖时发生了冲突,控制台指出是log4j产生的依赖冲突,导致程序报错无法运行,是一个典型的maven依赖冲突,基于这个问题进行 处理...
    99+
    2023-05-20
    Maven依赖冲突
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作