TAT.zhipingfeng android:clipToPadding 和 android:clipChildren
In 未分類 on 2014年10月14日 by view: 26,763
6

假設我們要做一個效果,界面最頂部是一個 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 的區域了。

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

 

原創文章轉載請注明:

轉載自AlloyTeam:http://www.5418yb.com/2014/10/androidcliptopadding-he-androidclipchildren/

  1. 美圖共賞 2016 年 4 月 14 日

    美圖在這里:http://www.fydzv.com/

  2. Longerian 2016 年 4 月 13 日

    這個屬性有種相見恨晚的感覺

  3. 林貞恩 2016 年 1 月 25 日

    非常高興遇到這么好的文章 謝謝

  4. 徐小木 2016 年 1 月 22 日

    好,值得細看,佩服

  5. MewX 2016 年 1 月 18 日

    Good, listView 如果使用 CoordinatorLayout,就不需要主動設置 padding 了。

  6. 堇色流年 2014 年 12 月 25 日

    ListView paddingTop 的高度應該是通知欄高度+actionbar 的高度吧。實際在 MX 中我用了 76dip 左右才剛好。

發表評論