高仿百度外卖效果
代码地址:https://github.com/yaodiwei/CoordinatorLayoutTester
真百度外卖效果
自定义Behavior一半分为两种类型
一种是重写layoutDependsOn和onDependentViewChanged。然后根据dependency控件的大小或位置的改变,来使自己的控件改变。
一种是重写onStartNestedScroll、onNestedPreScroll和onNestedScroll等跟scroll相关的方法。这个是针对一些NestedScrollView或RecyclerView这些只会内部滑动而不会改变自身大小和位置的控件。
关于自定义Behavior的介绍文章。有两篇在用法方面介绍的很好。
Material Design 之 Behavior的使用和自定义Behavior
关于这个仿百度外卖的控件,我本来是用第二种方法的。但是后来发现在 onNestedPreFling 方法上,不会回调多次。所以最后只能在NestedScrollView.setOnScrollChangeListener 这个监听类的 onScrollChange 方法上了。搞的最后好像跟 Behavior 没多大关系.........
注释都放在代码里了,这里实现该效果主要是依靠 HeaderBehavior 这个类。
放『附近商户』和『此刻最热』的称为MiddleContent。里面分为3部分
- MiddleContent 还处于在标题栏底下
- MiddleContent 已经和标题栏有重叠,属于变形阶段
- MiddleContent 在屏幕上方了,此时 MiddleContent 需要固定在标题栏上。
代码地址:https://github.com/yaodiwei/CoordinatorLayoutTester