android:clipToPadding和android:clipChildren


假設我們要做一個效果,界面最頂部是一個ActionBar並且是半透明的,ActionBar下面是一個ListView,在初始狀態 下,

ListView是top是在ActionBar的bottom位置的,但當ListView滾動的時候可以透過ActionBar看到下面的 ListView的

內容。如下面兩張圖所示:

正常態:

normal

滾動態:

scroll

乍一看,不是很簡單嗎,只要設置一下marginTop或者paddingTop就可以了,但問題是只用這兩個其中一個屬性的話,

ListView 滑動的時候就不能滾到paddingTop或者marginTop那部分區域,有人說可以用HeaderView來解決,這是其

中一個辦法,但僅僅了為這 個占空使用HeadView有點浪費而且會影響onItemClick的position.於是這里介紹可以到這

個效果的兩個屬性,就是 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">

Actionbar半透明就不詳細說了,只要設置actionbarOverlay為true並為ActionBar設置一個半透明的background即可.

這個屬性RecyclerView也有,是同樣的意思。


免責聲明!

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



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