CoordinatorLayout高级用法-自定义Behavior

在新的support design中,CoordinatorLayout可以说是最重要的一个控件了,CoordinatorLayout给我们带来了一种新的事件的处理方式——behavior,你是不是还记得我们在使用CoordinatorLayout的时候,一些子view需要一段

app:layout_behavior="@string/appbar_scrolling_view_behavior"

这样的xml配置?当时我们不知道这是干嘛的,直接照用就行了,后来发现这玩意是一个类!而且我们还可以自定义!

认识Behavior

Behavior是CoordinatorLayout的一个抽象内部类

public abstract static class Behavior {

    publicBehavior() {      }

    publicBehavior(Context context, AttributeSet attrs) {      }     

...}

有一个泛型是指定的我们应用这个Behavior的View的类型,例如上面的appbar_scrolling_view_behavior对应的字符串其实是

android.support.design.widget.AppBarLayout$ScrollingViewBehavior

这个ScrollingViewBehavior内部类指定的泛型是View,所以理论上这个Behavior我们任何的View都可以使用,我们在自定义的时候,如果不是特殊的行为,也可以直接指定泛型View

在自定义Behavior的时候,我们需要关心的两组四个方法,为什么分为两组呢?看一下下面两种情况

某个view监听另一个view的状态变化,例如大小、位置、显示状态等

某个view监听CoordinatorLayout里的滑动状态

对于第一种情况,我们关心的是:

layoutDependsOn

onDependentViewChanged

第二种情况

onNestedPreFling

onNestedPreScroll

onStartNestedScroll

待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容