全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

解决思路

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

代码如下

public void setOnScollChangedListener(OnScollChangedListener onScollChangedListener) {
  this.onScollChangedListener = onScollChangedListener;
}

@Override
protected 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);

}

@Override
public 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;

    /**
     * X轴滑动距离大于Y轴滑动距离,也就是用户横向滑动时,返回false,ScrollView不处理这次事件,
     * 让子控件中的TouchEvent去处理,所以横向滑动的事件交由子控件处理, ScrollView只处理纵向滑动事件
     */
    if (xDistance > yDistance) {
      return false;
    }
  }

  return super.onInterceptTouchEvent(ev);
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ScrollView嵌套横向滑动  # ScrollView  # 横向滑动嵌套  # Android 一个日历控件的实现代码  # Android实现日历控件示例代码  # Android学习教程之日历控件使用(7)  # Android使用GridLayout绘制自定义日历控件  # Android自定义日历控件实例详解  # Android开源堆叠滑动控件仿探探效果  # Android自定义View实现随手势滑动控件  # Android仿微信列表滑动删除之可滑动控件(一)  # Android实现IOS相机滑动控件  # Android自定义日历滑动控件  # 就会  # 最外层  # 掉了  # 重写  # 他可  # 要让  # 自然而然  # 大家多多  # 其子  # brush  # java  # class  # br  # pre  # public  # onScollChangedListener  # Override  # protected  # void  # setOnScollChangedListener 


相关文章: 北京专业网站制作设计师招聘,北京白云观官方网站?  建站之星安装步骤有哪些常见问题?  css网站制作参考文献有哪些,易聊怎么注册?  建站主机功能解析:服务器选择与快速搭建指南  高性价比服务器租赁——企业级配置与24小时运维服务  建站VPS配置与SEO优化指南:关键词排名提升策略  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  做企业网站制作流程,企业网站制作基本流程有哪些?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  完全自定义免费建站平台:主题模板在线生成一站式服务  免费视频制作网站,更新又快又好的免费电影网站?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  建站之星如何助力企业快速打造五合一网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  江苏网站制作公司有哪些,江苏书法考级官方网站?  宝塔面板如何快速创建新站点?  深圳网站制作培训,深圳哪些招聘网站比较好?  制作网站外包平台,自动化接单网站有哪些?  网站制作话术技巧,网站推广做的好怎么话术?  制作门户网站的参考文献在哪,小说网站怎么建立?  建站之星logo尺寸如何设置最合适?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  如何有效防御Web建站篡改攻击?  如何在建站之星网店版论坛获取技术支持?  建站之星如何实现PC+手机+微信网站五合一建站?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何在IIS7中新建站点?详细步骤解析  制作公司内部网站有哪些,内网如何建网站?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  建站之星导航如何优化提升用户体验?  网站制作的步骤包括,正确网址格式怎么写?  小型网站建站如何选择虚拟主机?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  建站org新手必看:2024最新搭建流程与模板选择技巧  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  如何在Windows虚拟主机上快速搭建网站?  建站之星备案是否影响网站上线时间?  大型企业网站制作流程,做网站需要注册公司吗?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何用IIS7快速搭建并优化网站站点?  建站之星如何实现网站加密操作?  香港网站服务器数量如何影响SEO优化效果?  孙琪峥织梦建站教程如何优化数据库安全?  ppt制作免费网站有哪些,ppt模板免费下载网站?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  齐河建站公司:营销型网站建设与SEO优化双核驱动策略 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。