android:clipToPadding和android:clipChildren
原文鏈接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0317/2613.html
假設(shè)我們要做一個效果,界面最頂部是一個ActionBar并且是半透明的,ActionBar下面是一個ListView,在初始狀態(tài) 下,ListView是top是在ActionBar的bottom位置的,但當(dāng)ListView滾動的時候可以透過ActionBar看到下面的 ListView的內(nèi)容。如下面兩張圖所示:
正常態(tài):
滾動態(tài):
乍一看,不是很簡單嗎,只要設(shè)置一下marginTop或者paddingTop就可以了,但問題是只用這兩個其中一個屬性的話,ListView 滑動的時候就不能滾到paddingTop或者marginTop那部分區(qū)域,有人說可以用HeaderView來解決,這是其中一個辦法,但僅僅了為這 個占空使用HeadView有點浪費(fèi)而且會影響onItemClick的position.于是這里介紹可以到這個效果的兩個屬性,就是 android:clipToPadding和android:clipChildren,這兩個屬性不是太多人用到,這里說明一下
clipToPadding就是說控件的繪制區(qū)域是否在padding里面的,true的情況下如果你設(shè)置了padding那么繪制的區(qū)域就往里 縮,clipChildren是指子控件是否超過padding區(qū)域,這兩個屬性默認(rèn)是true的,所以在設(shè)置了padding情況下,默認(rèn)滾動是在 padding內(nèi)部的,要達(dá)到上面的效果主要把這兩個屬性設(shè)置了false那么這樣子控件就能畫到padding的區(qū)域了。
<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半透明就不詳細(xì)說了,只要設(shè)置actionbarOverlay為true并為ActionBar設(shè)置一個半透明的background即可
這個屬性RecyclerView也有,是同樣的意思
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的android:clipToPadding和android:clipChildren的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 属性动画的应用
- 下一篇: RecyclerView ItemTou