clipToPadding
有時候需要在listview里設置一個padding值,布局如下所示
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2262"
android:orientation="vertical" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:paddingTop="16dp" >
</ListView>
</LinearLayout>
結果如下圖
可以發現滾動時頂部16dp的padding是永遠滾不到的,這樣看起來比較奇怪,怎么解決?
只要在ListView里加入一行代碼,就可以解決問題
android:clipToPadding="false"
clipChildren
在說clipChildren屬性之前首先看一個效果圖:
為了做出這種效果圖你能想到的方式是什么呢?用RelativeLayout?還是.......
其實很簡單,只要用了這個神奇的屬性后這個效果很容易就可以實現,下面是注意點:
- 只需在根節點設置android:clipChildren為false即可,默認為true,注意:一定是在布局文件的根節點設置,否則不起作用
- 可以通過android:layout_gravity控制超出的部分如何顯示
- android:clipChildren的意思:是否限制子View在其范圍內,我們將其值設置為false后那么當子控件的高度高于父控件時也會完全顯示,而不會被壓縮
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dip"
android:background="#B0C4DE"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
<ImageView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<ImageView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<ImageView
android:layout_width="0dip"
android:layout_height="70dip"
android:layout_gravity="bottom"
android:layout_weight="1.0"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<ImageView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<ImageView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
</LinearLayout>
</RelativeLayout>