嘿,我的兄弟,是比赛不是为了输赢就会有输赢

  【喷嚏图卦】我不是为了输赢,我就是认真


专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“专业文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取,非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档,需要文库用户支付人民币获取,具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档。

还剩9页未读, 继续阅读

child,则以它的结果为准,否则将调用 measureChild() 方法亲自测量。

除了锚定这个概念外,出现了 keyline 这个概念。keyline 应该是参考线的意思。指名这个 childView 布局时根据 keyline 的偏移量,再结合相应的 Gravity 进行布局。篇幅有限,感兴趣的同学自行去实践一下相应场景。

通过测量、布局之后,CoordinatorLayout 就可以正常绘制了。但是如果要进行一些触摸输入间的交互就还要分析一个内容。这就是它的 touch 相关的事件。

可以看到的是,如果 CoordinatorLayout 内部如果没有被拦截,那么它会传递触摸信息给 Behavior,如果有 Behavior 需要拦截这样的动作,那么就交给 Behavior,如果没有的话,它就会走传统的 ViewGroup 处理触摸事件的流程。

如果你是从头看到这里,我不知道你有没有这种感觉,像探索一样,经历了很长一段时间,顺着一条条线索,焦急、纠结,最终走出了一条道路。回首溯望,也许会有种风轻云淡的感觉。

这篇文章洋洋洒洒已经有千字以上了,因为篇幅过长,为了防止遗忘。现在可以将文章细节总结如下:

  1. 自定义 Behavior 主要有 2 个目的:1 确定一个 View 依赖另外一个 View 的依赖关系。2 指定一个 View 响应嵌套滑动事件。
  2. 确定两个 View 的依赖关系,有两种途径。一个是在 Behavior 中的 layoutDepentOn() 返回 true。另外一种就是直接通过 xml 锚定一个 View。当被依赖方尺寸和位置变化时,Behavior 中的 onDependentViewChanged 方法会被调用。如果在这个方法中改变了主动依赖的那个 view 的尺寸或者位置信息,应该在方法最后

一起配合使用,它是独立的,抛开它们,我们通过自定义 Behavior 也可以实现非常炫丽的交互效果。

而系统自定义的 Behavior 可以给开发者提供了许多场景的便利与降低开发难度。

不要重复造轮子。但不代表我们不需要去了解轮子。

这个精彩世界值得我们探索。

我要回帖

更多关于 比赛不是为了输赢 的文章

 

随机推荐