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来指定状态条吸顶的状态

你可能感兴趣的:(2018-11-07)