2018-11-07


哈,转眼已经十一月了。


这期需求是跟CoordinaterLayout相关,需要根据滑动位置动态更新一个ImageView的位置与大小。

需求分析

  1. 根据页面滑动距离,动态更新view layout,其中分为位置和大小两个方面
  2. 页面中部title条上滑到顶后吸顶
  3. view保持可点击状态并且最后固定在吸顶title上,更新点击事件

实现思路

  1. 先考虑第二个需求,吸顶可以通过CoordinaterLayout配合AppBarLayout以及CollapsingToolBarLayout实现
  2. 那么再来考虑第一个需求,现在有两个思路
    • 第一个,我们可以通AppBarLayout.OnOffsetChangedListener来监听AppBarLayout的offset,来确定view需要的translation以及scale
    • 我们可以通过CoordinaterLayout中的Behavior来对view进行设置,而这也有两种实现方式
      1. 某个view监听另一个view的状态变化,例如大小、位置、显示状态等需要重写layoutDependsOn和onDependentViewChanged方法
      2. 某个view监听CoordinatorLayout内NestedScrollingChild的接口实现类的滑动状态重写onStartNestedScroll和onNestedPreScroll方法
  3. view吸顶可以在CollapsingToolBarLayout中通过layout_scrollFlags来指定状态条吸顶的状态
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,429评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,472评论 2 59
  • Version:1.0StartHTML:000000231EndHTML:000105074StartFragm...
    yasuo1阅读 1,644评论 0 0
  • 文章转载自:https://www.cnblogs.com/Ry-yuan/p/7384149.html css语...
    王叮叮当当响阅读 3,226评论 0 0
  • 有些烦恼,丢掉了,才有云淡风轻的机会。 大声的笑出声来,就不再害怕了。 什么时候我们开始无法像孩子一样肆意地...
    不会写作的女青年阅读 884评论 0 0