MeasureSpec介紹及使用詳解

2022-03-18 02:48:25 字數 1143 閱讀 8405

乙個measurespec封裝了父布局傳遞給子布局的布局要求,每個measurespec代表了一組寬度和高度的要求。乙個measurespec由大小和模式組成。它有三種模式:unspecified(未指定),父元素不對自元素施加任何束縛,子元素可以得到任意想要的大小;exactly(完全),父元素決定自元素的確切大小,子元素將被限定在給定的邊界裡而忽略它本身大小;at_most(至多),子元素至多達到指定大小的值。

它常用的三個函式:

1.static int getmode(int measurespec):根據提供的測量值(格式)提取模式(上述三個模式之一)

2.static int getsize(int measurespec):根據提供的測量值(格式)提取大小值(這個大小也就是我們通常所說的大小)

3.static int makemeasurespec(int size,int mode):根據提供的大小值和模式建立乙個測量值(格式)

api demo中提供的自定義view示例中:

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

/*** determines the width of this view

* @param measurespec a measurespec packed into an int

* @return the width of the view, honoring constraints from measurespec

*/private int measurewidth(int measurespec) else

}return result;

}/**

* determines the height of this view

* @param measurespec a measurespec packed into an int

* @return the height of the view, honoring constraints from measurespec

*/private int measureheight(int measurespec) else

}return result;

}

MeasureSpec介紹及使用詳解

乙個measurespec封裝了父布局傳遞給子布局的布局要求,每個measurespec代表了一組寬度和高度的要求。乙個measurespec由大小和模式組成。它有三種模式 unspecified 未指定 父元素部隊自元素施加任何束縛,子元素可以得到任意想要的大小 exactly 完全 父元素決定自...

MeasureSpec介紹及使用詳解

乙個measurespec封裝了父布局傳遞給子布局的布局要求,每個measurespec代表了一組寬度和高度的要求。乙個measurespec由大小和模式組成。它有三種模式 unspecified 未指定 父元素部隊自元素施加任何束縛,子元素可以得到任意想要的大小 exactly 完全 父元素決定自...

MeasureSpec介紹及使用詳解

乙個measurespec封裝了父布局傳遞給子布局的布局要求,每個measurespec代表了一組寬度和高度的要求。乙個measurespec由大小和模式組成。它有三種模式 unspecified 未指定 父元素部隊自元素施加任何束縛,子元素可以得到任意想要的大小 exactly 完全 父元素決定自...