MeasureSpec
View的MeasureSpec由父容器的MeasureSpec以及自身的LayoutParams決定的;
[圖片上傳失敗...(image-67326b-1706696414006)]
1:當(dāng)父容器是Exactly模式
如果子view是Exactly模式(當(dāng)用戶(hù)指定了具體的數(shù)值(寬/高)),那么這個(gè)子view的resultSize就是你賦值的這個(gè)具體的值;
如果子view指定是match_parent,那么子view的resultSize依然是父容器給與的最大值,模式還是exactly;
如果子view指定的是wrap_content,那么子view的resultSize還是父容器給與的最大值,但是模式就變成了at_most;
2:當(dāng)父容器是At_most模式
如果子view是Exactly模式(當(dāng)用戶(hù)指定了具體的數(shù)值(寬/高)),那么這個(gè)子view的resultSize就是你賦值的這個(gè)具體的值;
如果子view指定是match_parent,那么子view的resultSize依然是父容器給與的最大值,模式還是at_most;
如果子view指定的wrap_content,子view的resultSize就是父控件的size,模式是at_most;
3:當(dāng)父容器是Unspecified(這個(gè)模式我們基本用不到,大部分都是系統(tǒng)內(nèi)部使用)
如果子view是Exactly模式(當(dāng)用戶(hù)指定了具體的數(shù)值(寬/高)),那么這個(gè)子view的resultSize就是你賦值的這個(gè)具體的值;
如果子view指定的是match_parent,子view的大小為0;模式為Unspecified;
如果子view指定的是wrap_parent,子view的大小為0;模式為Unspecified;
getLeft,getRight,getTop,getBottom,getWidth(),getHeight();
Getleft:子view的左邊界到父view的左邊界的距離;
getRight:子view的右邊界到父view的左邊界距離;
getTop:子view的頂部到父view的頂部距離;
getBottom:子view的底部到父view的頂部距離;
getWidth: getRight-getleft;