之前的几篇博客,我测试了View事件分发机制中的一些知识点,我们理解事件分发机制的目的就是为了能够更好了知道View中事件的传递过程进而能够对于滑动冲突有针对性的解决措施,今天我们通过一个翻页实例来学习下滑动处理的方式之一-----外部拦截法;
因为要用到翻页,那么不可避免的要用到Scroller类,其实拿scrollBy和scrollTo也能做到翻页的效果,但不足是两者都是在瞬...
分类:
移动开发 时间:
2016-07-03 19:12:52
阅读次数:
334
一、前言
Android 中解决滑动的方案有2种:外部拦截法 和内部拦截法。
滑动冲突也存在2种场景: 横竖滑动冲突、同向滑动冲突。
所以我就写了4个例子来学习如何解决滑动冲突的,这四个例子分别为: 外部拦截法解决横竖冲突、外部拦截法解决同向冲突、内部拦截法解决横竖冲突、内部拦截法解决同向冲突。
先上效果图:
二、实战
1、外部拦截法,解决横竖冲突
思路是,重写父控件的onInterc...
分类:
移动开发 时间:
2016-06-24 15:33:55
阅读次数:
250
View的滑动冲突指的是当有内外两层View同时可以滑动的时候,这个时候就会产生滑动冲突。那么应该如何解决滑动呢,其实要用到View的事件分发机制。
View的滑动冲突主要有以下三个场景:
场景一:外部滑动方向和内部滑动方向不一致;
场景二:外部滑动方向和内部滑动方向一致;
场景三:以上两种情况的嵌套。
这里主要讨论场景一的滑动冲突的解决,其他两种思想都是类似的,...
分类:
其他好文 时间:
2016-06-15 12:46:28
阅读次数:
311
问题:当我添加两个TextView的时候,然后滑动,发现只生成了一个TextView。 就是 <?xml version="1.0" encoding="utf-8"?> <com.maikefengchao.viewcompflict.HorzonScrollLinearLayout xmlns: ...
分类:
其他好文 时间:
2016-06-05 15:35:00
阅读次数:
514
一、之前分析的滑动冲突,并没有讲述event事件是如何分发到不同的控件 View的滑动冲突 现在分析一下滑动冲突event事件的流向 假设: 我们的一个事件为 点下——>左滑动一次——>松手 这三个为该事件的子事件 点下: 当点击屏幕的时候,点击事件会从Activity层 经过 Window 到 D ...
分类:
其他好文 时间:
2016-06-05 15:21:32
阅读次数:
146
本文根据任玉刚的博客和书以及http://blog.csdn.net/guolin_blog/article/details/9097463整理简单好学习。
处理对象:点击事件
处理问题:解决滑动冲突、焦点抢占
处理办法:1.使失效:让onTouchEvent不消耗事件clickable和longclickable都为false
2.在父视图分发的时...
分类:
其他好文 时间:
2016-05-07 08:56:10
阅读次数:
163
手把手教你实现用ViewPager自定义实现Banner轮播 欢迎大家关注Android开源网络框架NoHttp:https://github.com/Y0LANDA/NoHttp
我们在实际开发中,很多App都会在做一个广告轮播器(可能是图片,可能是其他View),很多同学都是使用别人封装好的或者直接使用ViewPager自己来改,但是有人可能并不理解里面的原理,或者有人遇到了手势滑动冲突...
分类:
其他好文 时间:
2016-05-06 12:58:27
阅读次数:
196
前几天写了一个仿qq5.0的效果
继承 HorizontalScrollView实现水平滑动,内容区域是一个ListView上下滑动
目前是没有滑动冲突但是,我想在左边菜单栏显示的时候,内容区域的ListView不能上下滑动
外部拦截法解决滑动冲突
声明成员变量:
/**
* 处理滑动冲突的属性
*/
private int mLastIntercepX = 0;
pri...
分类:
其他好文 时间:
2016-04-16 19:20:54
阅读次数:
163
先看看效果图
实现方法继承自ViewGroup需要我们自己来测量,布局,实现滑动的效果,处理滑动冲突,
自定义ViewGroup的一般思路是重写onMeasure方法,在onMeasure方法中调用measureChild来测量子View,然后调用setMeasuredDimension来测量自己的大小。然后重写onLayout方法,在onLayout中调用子View的layout方法来确定...
分类:
移动开发 时间:
2016-04-08 15:13:46
阅读次数:
222
最近在开发中遇到view滑动冲突的问题,由于一开始就知道这个问题与view事件分发有关,之后在网上看了几篇关于事件分发的资料后,开发中遇到的问题很快便得到解决。
在这里总结一下我对view事件分发的理解。首先,看下事件分发流程图:
Button事件演示在对view的事件分发机制进行分析前,我们可以通过一个demo看看Button的事件处理的流程。
在布局文件中添加一个button控件,然后在代...
分类:
移动开发 时间:
2016-03-29 13:05:41
阅读次数:
312