【移動應(yīng)用開發(fā)技術(shù)】Android CoordinatorLayout高級用法之自定義Behavior_第1頁
【移動應(yīng)用開發(fā)技術(shù)】Android CoordinatorLayout高級用法之自定義Behavior_第2頁
【移動應(yīng)用開發(fā)技術(shù)】Android CoordinatorLayout高級用法之自定義Behavior_第3頁
【移動應(yīng)用開發(fā)技術(shù)】Android CoordinatorLayout高級用法之自定義Behavior_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】AndroidCoordinatorLayout高級用法之自定義Behavior

上次簡單的說了一下CoordinatorLayout的基本用法(android特性之CoordinatorLayout用法探析實例)。其中CoordinatorLayout給我們提供了一種新的事件的處理方式,Behavior。還記得那一串字符串嗎?其實它并不是一個字符串資源,而它代表的是一個類,就是一個Behavior,這玩意其實還可以自定義的。

首先,來讓我見識一下它的真面目:Behavior是CoordinatorLayout的一個內(nèi)部泛型抽象類。內(nèi)部類中指定的view類型規(guī)定了哪種類型的view的可以使用才Behavior。因此,如果沒有特殊需求,直接指定view為View就行了。

1.某個view需要根據(jù)監(jiān)聽另一個的行為來控制自己的行為,這個時候我們需要重寫2個方法:2.我們的view需要根據(jù)監(jiān)聽CoordinatorLayout中的子view的滾動行為來改變自己的狀態(tài),現(xiàn)在我們就需要重寫下面的方法了:下面我們先來看一下情況1,讓一個view跟隨另一個view的行為而實現(xiàn)狀態(tài)的改變。我們定義一個Behavior,名字叫:FooterBehavior,代碼如下:我們在自定義的Behavior中,帶有參數(shù)的這個構(gòu)造必須要重載,因為在CoordinatorLayout里利用反射去獲取這個Behavior的時候就是拿的這個構(gòu)造。

在layoutDependsOn中,我們設(shè)置讓View的狀態(tài)來跟隨AppBarLayout,也就是說只有AppBarLayout的狀態(tài)發(fā)生變化才會影響到View。

接下來就是在onDependentViewChanged中對View做出相應(yīng)的狀態(tài)改變。在代碼中,我們做的改變是,跟隨dependedcy一起在Y軸方向移動,來達(dá)到顯示和隱藏的目的。先布局如下:

activity_main.xml布局:appbar_main.xml布局如下:content_main.xml布局如下:footer_main.xml布局如下:注意看,在footer_main.xml中我們設(shè)置了這正好就是我們自定義的FooterBehavior的絕對路徑。下面我們來看一下效果圖:在效果圖上我們看到,當(dāng)我們上下滑動屏幕的時候,底部footer布局和標(biāo)題Toolbar一起移動,實現(xiàn)了顯示和隱藏的效果。學(xué)會了第一張簡單的自定義Behavior之后,接下來我們再來看一下第二種情況,滑動。因為這個是根據(jù)CoordinatorLayout里子view的滾動行為來改變我們的狀態(tài)的,所以情況1中的2個方法我們就不需要重寫了。下面,我們用情況2來實現(xiàn)上面的效果。

先來看一下下面幾個參數(shù):

child:簡單點說,就是用到當(dāng)前CoordinatorLayout的子View,響應(yīng)此Behavior。

target:CoordinatorLayout的子View,引起滾動的view,其實child的狀態(tài)改變是根據(jù)target來實現(xiàn)的。在方法onStartNestedScroll中,首先獲取target在Y軸上距離屏幕頂端的距離,然后判斷是否是在Y軸上滾動。

方法onNestPre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論