CoordinatorLayout使用詳解之自定義Behavior

這裏接着第一篇基礎,本篇主要將如何自定義Behavior
如果還沒看過基礎篇,可以先看上一篇地址:
http://blog.csdn.net/qq_24641847/article/details/78235966
如果要實現如高德地圖或者餓了麼相關界面效果,必須要自定Behavior
自定義Behavior第一步繼承

CoordinatorLayout.Behavior<V extends View>

參數V表示你要定義的View,就是你給那個View定義Behavior屬性,就給哪個View

定義了Behavior,下邊就是綁定對應的View目前有兩種綁定方式,第一種是在xml中配置

app:layout_behavior=""

這裏是class的完整路徑如果你看過系統定義

app:layout_behavior="@string/appbar_scrolling_view_behavior"

看源碼,其實是這樣

<string name="appbar_scrolling_view_behavior" translatable="false">android.support.design.widget.AppBarLayout$ScrollingViewBehavior</string>

其實這個字符串就是ScrollingViewBehavior的這個Behavior的完整路徑
第二種綁定Behavior的方法就是在View中綁定像這樣註解

@CoordinatorLayout.DefaultBehavior(你的Behaviorclass)

定義完這些,那個自定Behavior就完成了,此時還是不會有任何作用的,要想起作用,就需要做一些事情
首頁是要綁定View

“`ruby
app:layout_anchor=””
““
這個屬性的意思就是我跟誰關聯,這裏綁定對應的ViewId
主要是重寫父類的這個兩個方法

public boolean onDependentViewChanged(CoordinatorLayout parent, V child, View dependency)

layoutDependsOn方法可以判斷child和dependency的關係,true表示關聯,false表示不關聯
onDependentViewChanged就是在關聯的View改變的時候搞事情

每次綁定的View改變,都會回調layoutDependsOn和onDependentViewChanged方法

比如:當關聯的View移動的時候回調,我們就可以控制我們自己也跟隨移動;在比如如果關聯的View消失的時候,我們頁跟着消失,都是在這樣操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章