Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 7CollapsingToolbarLayout

7CollapsingToolbarLayout

編輯:關於Android編程

7CollapsingToolbarLayout

CollapsingToolbarLayout是Toolbar的一個包裝,可以做出很多很炫的折疊效果。

toolbar伸縮
\

toolbar伸展開加入圖片背景,收縮時變會普通toolbar

Toolbar伸展

先從最簡單的看起

   

        

            

        

    

效果如下所示,toolbar可以伸展

\

如果想要最後的時候toolbar也留著,只要在app:layout_scrollFlags裡加一個exitUntilCollapsed,效果如下,exitUntilCollapsed意思就是滑出直到折疊狀態,即滑出的時候最多到折疊狀態,無法完全滑出<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="" src="/uploadfile/Collfiles/20160920/2016092009343076.gif" title="\" />

此時有個問題,右上角菜單不見了,實際上是滑出去了,我們要想保留,就得讓toolbar不滑動,pin住就行了(Toolbar設置app:layout_collapseMode=”pin”),讓toolbar不滑動。效果如下,此時效果已經不錯了,上滑過程中,標題逐漸變小,然後跑到toolbar裡去.此時如果要修改伸展狀態下text的位置可以用app:expandedTitleMargin, app:expandedTitleMarginBottom, app:expandedTitleMarginEnd and app:expandedTitleMarginStart。

Toolbar背景圖

case1

如何為Toolbar添加個背景圖呢?
因為CollapsingToolbarLayout是FrameLayout所以,直接在裡面加ImageView就可以了(加backgroud行不行?)
注意此時把toolbar背景去掉,刪掉這句android:background=”?attr/colorPrimary”
然後CollapsingToolbarLayout內加入加入app:contentScrim=”?attr/colorPrimary”
這麼做,伸展開的時候背景就是圖片,收縮的時候背景就是純色

\

case2

此時發現圖片不會滑到狀態欄上,那是因為狀態欄沒有設置透明,給activity換個style用AppTheme.NoActionBar之後,就可以滑到狀態欄了。效果如下

\

case3

此時,初始態未覆蓋狀態欄,滑動的時候可以覆蓋到狀態欄,想要初始態就覆蓋狀態欄,怎麼辦?
給ImageView加上fitSystemWindow,效果如下

\

case4

app:layout_collapseMode=”parallax” 可以讓圖片和AppBarLayout一起滑動

\

最後代碼如下

“` xml

enterAlways

enterAlways: 一旦下滑就會讓view逐步顯示出來. 當我們滑到一個list的底部的時候,想要下滑盡快看到toolbar的時候,用這個模式很有用。

一般情況下,我們想要toolbar顯示出來,得先滑到list的頂部才行,如下所示
\

如果設置了enterAlways,就會如下所示,可以看到toolbar立刻就出來了

enterAlwaysCollapsed

\

但是如果使用enterAlwaysCollapsed,注意此時的layout_scrollFlags必須寫了scroll、enterAlways、enterAlwaysCollapsed,
這樣可以實現,一旦下滑就把我們的view拉出minimum height,然後list到頂的時候,可以把整個view拉出來。如下所示。(我試了下沒做出這樣的效果)

snap

snap的作用就是讓CollapsingToolbarLayout要麼完全展開,要麼完全收縮,根據手指抬起的時候,滾動的距離有沒有一半來判斷

\

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved