说明:这篇文章主要用于作者临时观看,因为涉及版权问题,所以短时间内会删除

京东淘宝首页二级联动

单点触摸与多点触摸

####单点触摸

image-20220718212127652

####多点触摸

image-20220718212142549

image-20220718212203113

面试题

一个move事件 中间有多少个手指的信息->有多少个手指就有多少个手指信息->最多32个

Touch事件源码

image-20220718212217242

image-20220718212232559

image-20220718212254074

image-20220718212316235

image-20220718212335895

image-20220718212349700

image-20220718212414454

image-20220718212432841

image-20220718212452115

image-20220718212515213

上述的disallowIntercept及相关内容就是所谓的“尚方宝剑”

image-20220718212536424

image-20220718212555410

image-20220718212609465

嵌套滑动

image-20220718212649556

image-20220718212704210

并且从上面可以看出NestedScrollView既可以做“父亲”,也可以做“孩子”

image-20220718212718655

“孩子”有三个版本

三个版本之间是的关系 同样“父亲”也是一样

版本2与版本1相比 增加了type 如惯性滑动效果

image-20220718212737829

吸顶效果

image-20220718212758009

image-20220718212818443

onFinishInflate()中获取第一个孩子的第二个孩子,从下图可以看出也就是是第二个LinearLayout

image-20220718212839006

继续嵌套滑动

嵌套滑动->是由孩子主动的 触发的

image-20220718212906775

google为了方便我们处理嵌套滑动,所以提供了这个帮助类 -> getScrollingChildHelper()

image-20220718212928635

image-20220718212942972

image-20220718213001121

while(p!=null)一直找,直到找到支持嵌套滑动

image-20220718213017801

image-20220718213043191

image-20220718213058717

所以它没有滑,“父亲”划不动的时候,它(NestedScrollView)才动

image-20220718213122243

image-20220718213138627

问题描述:需求是整个页面滑动,当父View滑不动的时候,子View才动。问题出现的原因就是上面的文字描述,要想解决

问题的解决:重写onNestedPreScroll()方法,做一些设置,如果自己还能滑,那么就自己滑,并且需要记录一下(consumed[1],0记录的x,1记录的y)

  • 注意:NetestScrollLayout是自定义继承NetestScrollView的

    image-20220718213208543

惯性滑动

image-20220718213227462

记录下速度 velocityY

image-20220718213246067

  • 1、记下来速度 velocity
  • 2、转化成 距离
  • 3、自己滑了多少距离 根据速度转换后的距离 -> 我自己的滑动距离 = 孩子应该滑的距离
  • 4、孩子应该滑的距离又要转化成速度
  • google提供的速度转距离的工具

image-20220718213300370

孩子 ->如recyclerView又会将距离转换成速度(因为RecyclerView只支持fling,所以需要转化成速度再转成距离)

下面两个方法分别对应上述步骤中的第3步和第4步

image-20220718213317734

关于totalDy

下面注解一处错误:第一个,其实是Viewpager2,不是RecyclerView,通过前面有一张布局截图可以看出最后下面那个是ViewPager2

image-20220718213340340

image-20220718213358954

关于内部拦截

image-20220718213415057

image-20220718213428785