声明:转载请注明本文地址
DEMO相关
Github源码,欢迎大家指正,以及star,谢谢
https://github.com/JmStefanAndroid/EasyBehavior
简介
前段时间由于产品的”神奇”(qi pa)需求,需要能下拉刷新放大,上划折叠,而且下半部分还是一个Tab+Viewpager布局。
类似新浪微博的个人中心,但他的也不能下拉放大背景图,百度良久,发现有个别案例相似,比如 appbarlayout-spring-behavior,作者的源码似乎是深入阅读了
Framework
层
AppBarLayout
的
Behavior
了,但是我做demo时,发现在fragment中根本用不了(具体原因太久不清楚了),无奈我只能自己撸个轮子了,这才静下心来研究了这个
Behavior
,写这篇文章旨在帮助各位少走弯路,少爬坑。
注:文章会分为 两大部分,前部分讲 自定义behavior的基础知识,后部分讲 例子的实现,如果你已经非常熟悉
Behavior
的基础知识,请直接跳过第一部分。
图片.avi
自定义Behavior的基础知识
废话少说,只讲关键
Behavior是Android新出的Design库里新增的布局概念。Behavior只有是CoordinatorLayout的直接子View才有意义,我们可以为任何View添加一个Behavior。说白了Behavior就是一系列回调,让你有机会以非侵入的方式为View添加动态的依赖布局,和处理父布局(CoordinatorLayout)滑动手势的机会。
Interaction behavior plugin for child views of CoordinatorLayout.
A Behavior implements one or more interactions that a user can take on a child view. These interactions may include drags, swipes, flings, or any other gestures.
1.创建一个类继承Behavior,同时指定其泛型,如果你需要设置其为某个特定的View类,可以在继承的时候做的工作,类似这样
public class CircleImageInUsercBehavior extends CoordinatorLayout.Behavior&l