view中妙用屬性含義記錄
文章目錄
clipToPadding
檢視android中對該屬性的註釋
Defines whether the ViewGroup will clip its children and resize (but not clip) any
EdgeEffect to its padding, if padding is not zero. This property is set to true by
default.
自己理解這段話為:該屬性用於定義ViewGroup是否會根據padding屬性重新裁剪和改變子view的大小。
clipToPadding=true的效果
可以看到view滾動的時候周圍是有留白的padding區域的
clipToPadding=false的效果
可以看到滾動的時候padding部分的留白被子view繪製了
當我們使用recyclerview的時候,如果希望padding區域在滾動的時候不可見,我們可以使用clipToPadding=false,達到這個效果
clipChildren
檢視android中的註釋
Defines whether a child is limited to draw inside of its bounds or not.
This is useful with animations that scale the size of the children to more
than 100% for instance. In such a case, this property should be set to false
to allow the children to draw outside of their bounds. The default value ofthis property is true.
該屬性的含義為:是否限制view只能在自己的邊界內繪製。當在執行縮放動畫的時候,view的大小超過100%的時候,可以將這個屬性設定為false,這樣這個view就可以在超出自己顯示區域的邊界外顯示了。
clipChildren=true的效果
圖片沒辦法超出父佈局顯示,被裁剪
佈局程式碼:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/grandfather"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="true"
android:orientation="vertical"
android:gravity="center"
tools:context=".MainActivity_main">
<LinearLayout
android:id="@+id/father"
android:background="#4CAF50"
android:layout_width="200dp"
android:layout_height="200dp"
android:orientation="vertical">
<ImageView
android:src="@drawable/kite"
android:layout_width="300dp"
android:layout_height="300dp" />
</LinearLayout>
</LinearLayout>
clipChildren=false的效果
佈局程式碼:
將上面佈局程式碼中根佈局中的clipChildren屬性設定為false