CollapsingToolbarLayout 是 google 在其推出的design libiary 中給出的一個新型控制項。其可以實現的效果類似於: toolbar是透明的,有一個背景圖片以及大標題,隨著頁面的向上滑動,其標題逐漸縮放到toolbar上,而背景圖滑動到一定程度後變成了toolba ...
CollapsingToolbarLayout 是 google 在其推出的design libiary 中給出的一個新型控制項。其可以實現的效果類似於: toolbar是透明的,有一個背景圖片以及大標題,隨著頁面的向上滑動,其標題逐漸縮放到toolbar上,而背景圖滑動到一定程度後變成了toolbar的顏色。這種效果即是 摺疊式效果。
引入: dependencies { compile 'com.android.support:cardview-v7:24.1.0' //cardview compile 'com.android.support:design:24.1.0' compile 'com.android.support:appcompat-v7:24.1.0' } 常用的xml屬性: 1)contentScrim:當Toolbar收縮到一定程度時的所展現的主體顏色。即Toolbar的顏色。 2)title:當titleEnable設置為true的時候,在toolbar展開的時候,顯示大標題,toolbar收縮時,顯示為toolbar上面的小標題。 3)scrimAnimationDuration:該屬性控制toolbar收縮時,顏色變化的動畫持續時間。即顏色變為contentScrim所指定的顏色進行的動畫所需要的時間。 4)expandedTitleGravity:指定toolbar展開時,title所在的位置。類似的還有expandedTitleMargin、collapsedTitleGravity這些屬性。 5)collapsedTitleTextAppearance:指定toolbar收縮時,標題字體的樣式,類似的還有expandedTitleTextAppearance。 一般開發中,CollapsingToolbarLayout不會單獨出現在佈局文件中,而是作為另一個控制項CoordinatorLayout的子元素出現,那麼CoordinatorLayout又是什麼呢?其實CoordinatorLayout這個控制項很強大,能對其子元素實現多種不同的功能,一個常見的用法就是:給它的一個子元素A設置一個layout_scrollFlags的屬性,然後給另外一個子元素B設置一個layout_behavior=”@string/appbar_scrolling_view_behavior”的屬性,這個子元素B一般是一個可以滑動的控制項,比如RecyclerView、NestedScrollView等,那麼當子元素B滑動的時候,子元素A就會根據其layout_scrollFlags的屬性值而做出不同的改變,所以我們要為CollapsingToolbarLayout設置layout_scrollFlags屬性。 layout_scrollFlags: * scroll:所有想要滑動的控制項都要設置這個標誌位。如果不設置這個標誌位,那麼View會固定不動。 * enterAlways:設置了該標誌位後,若View已經滑出屏幕,此時手指向下滑,View會立刻出現,這是另一種使用場景。 * enterAlwaysCollapsed:設置了minHeight,同時設置了該標誌位的話,view會以最小高度進度屏幕,當滑動控制項滑動到頂部的時候才會拓展為完整的高度。 * exitUntilCollapsed:向上滑動時收縮當前View。但view可以被固定在頂部。 layout_collapseMode: * pin:有該標誌位的View在頁面滾動的過程中會一直停留在頂部,比如Toolbar可以被固定在頂部 * parallax:有該標誌位的View表示能和頁面同時滾動。與該標誌位相關聯的一個屬性是:layout_collapseParallaxMultiplier,該屬性是視差因數,表示該View與頁面的滾動速度存在差值,造成一種相對滾動的效果。