1. 程式人生 > >半透明的actionbar的實現

半透明的actionbar的實現

效果

假設我們要做一個效果,介面最頂部是一個ActionBar並且是半透明的,ActionBar下面是一個ListView,在初始狀態下,ListView是top是在ActionBar的bottom位置的,但當ListView滾動的時候可以透過ActionBar看到下面的ListView的內容。如下面兩張圖所示:
這裡寫圖片描述
滾動時
這裡寫圖片描述

如何實現

怎麼實現上面的這個效果呢!一開始我的做法是加一個頭部,如果用的是原生的actionbar的話還要設定style(好像是什麼windowContentOverlay之類的,具體有些忘記了),總之還是挺麻煩的,想想不僅是listview還有GridView什麼的,要是gridView按照上面的思路去實現這個效果就更麻煩了(當然我是已經不再使用gridview和listview,有了recyclerview之後感覺太好用了就一直用recyclerview了)。
後來偶然下找到了另一中實現方法,我覺得是最好的一種,只需要用到兩個屬性,這兩個屬性在recyclerview裡面也有:就是android:clipToPadding和android:clipChildren,這兩個屬性不是太多人用到,這裡說明一下clipToPadding就是說控制元件的繪製區域是否在padding裡面的,true的情況下如果你設定了padding那麼繪製的區域就往裡縮,clipChildren是指子控制元件是否超過padding區域,這兩個屬性預設是true的,所以在設定了padding情況下,預設滾動是在padding內部的,要達到上面的效果主要把這兩個屬性設定了false那麼這樣子控制元件就能畫到padding的區域了。

 <ListView
        android:layout_gravity="center_vertical"
        android:id="@+id/list"
        android:clipChildren="false"
        android:clipToPadding="false"
        android:paddingTop="50dip"
        android:layout_width="match_parent" 
        android:layout_height="match_parent">

其他的話就不再多說了,注意佈局要使用Framelayout。