Android - CollapsingToolbarLayout 完全解析


  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與頁面的滾動速度存在差值,造成一種相對滾動的效果。
 
 
  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM