前言:今天在开发的时候遇到这样的问题,最外层是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小时内与您取得联系。