iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android ScrollView嵌套横向滑动控件时冲突问题
  • 631
分享到

Android ScrollView嵌套横向滑动控件时冲突问题

scrollview嵌套横向滑动 2023-05-30 22:05:02 631人浏览 八月长安
摘要

前言:今天在开发的时候遇到这样的问题,最外层是ScrollView,里面嵌套了一个横向滑动的日历控件,在滑动日历的时候很卡顿。看到这种问题,自然而然的就会想到scrollview和其他可滑动控件的冲突问题。解决思路用户的左右滑动操作被最外层

前言:今天在开发的时候遇到这样的问题,最外层是ScrollView,里面嵌套了一个横向滑动的日历控件,在滑动日历的时候很卡顿。看到这种问题,自然而然的就会想到scrollview和其他可滑动控件的冲突问题。

解决思路

用户的左右滑动操作被最外层的scrollView控件处理掉了,所以只要让scrollview对左右滑动事件不监听,让其子控件处理左右滑动事件 。重写scrollview的onInterceptTouchEvent方法,当上下滑动时不处理即可。

代码如下

public void setOnScollChangedListener(OnScollChangedListener onScollChangedListener) {  this.onScollChangedListener = onScollChangedListener;}@Overrideprotected void onScrollChanged(int x, int y, int oldx, int oldy) {  super.onScrollChanged(x, y, oldx, oldy);  if (onScollChangedListener != null) {    onScollChangedListener.onScrollChanged(this, x, y, oldx, oldy);  }}public interface OnScollChangedListener {  void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {  switch (ev.getAction()) {  case MotionEvent.ACTION_DOWN:    xDistance = yDistance = 0f;    xLast = ev.getX();    yLast = ev.getY();    break;  case MotionEvent.ACTION_MOVE:    final float curX = ev.getX();    final float curY = ev.getY();    xDistance += Math.abs(curX - xLast);    yDistance += Math.abs(curY - yLast);    xLast = curX;    yLast = curY;        if (xDistance > yDistance) {      return false;    }  }  return super.onInterceptTouchEvent(ev);}}

--结束END--

本文标题: Android ScrollView嵌套横向滑动控件时冲突问题

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

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

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

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

下载Word文档
猜你喜欢
  • Android ScrollView嵌套横向滑动控件时冲突问题
    前言:今天在开发的时候遇到这样的问题,最外层是ScrollView,里面嵌套了一个横向滑动的日历控件,在滑动日历的时候很卡顿。看到这种问题,自然而然的就会想到scrollview和其他可滑动控件的冲突问题。解决思路用户的左右滑动操作被最外层...
    99+
    2023-05-30
    scrollview 嵌套 横向滑动
  • Android中怎么解决嵌套滑动冲突
    本篇文章为大家展示了Android中怎么解决嵌套滑动冲突,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一.会产生滑动冲突的情况那么什么时候会产生滑动冲突呢?比如你有个activity,activit...
    99+
    2023-05-30
    android
  • Android使用NestedScrollView 内嵌RecycleView滑动冲突问题解决
    目录场景描述实现思路问题和优化优化场景描述 使用NestedScrollView 内嵌RecycleView时,当用户上滑时,NestedScrollView需要首先响应上滑事件,直...
    99+
    2024-04-02
  • Android使用NestedScrollView内嵌RecycleView滑动冲突问题如何解决
    这篇“Android使用NestedScrollView内嵌RecycleView滑动冲突问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,...
    99+
    2023-07-02
  • View事件分发原理和ViewPager+ListView嵌套滑动冲突
    前言: 一个touch事件序列包括:down、move、up(其中move事件会多次触发,就是说如果手指在屏幕上多次滑动的时候会多次触发move事件,可以利用这一点实现view 的移...
    99+
    2024-04-02
  • Android侧滑菜单和轮播图之滑动冲突问题
    接手一个项目,有一个问题需要修改:轮播图不能手动滑动,手动滑动轮播图只会触发侧滑菜单。猜测:viewpager控件(轮播图)的触摸事件被SlidingMenu控件(侧滑菜单,非第三方项目,乃是上个开发人员自定义的)拦截了。基于这个猜测,我自...
    99+
    2023-05-31
    android 侧滑菜单 轮播图
  • View事件分发原理和ViewPager+ListView嵌套滑动冲突怎么解决
    今天小编给大家分享一下View事件分发原理和ViewPager+ListView嵌套滑动冲突怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作