getMeasuredWidth 為view的測量寬度。 getWidth為view的最終寬度。 (這裡只討論寬度,高度也是一樣的道理) 那麼它們之間有什麼區別呢? 測量寬度是在view的measure過程中形成的,而最終寬度是view的layout過程中形成的。這是它們之間的區別,它們的大小在大多 ...
getMeasuredWidth 為view的測量寬度。
getWidth為view的最終寬度。
(這裡只討論寬度,高度也是一樣的道理)
那麼它們之間有什麼區別呢?
測量寬度是在view的measure過程中形成的,而最終寬度是view的layout過程中形成的。這是它們之間的區別,它們的大小在大多數情況下都是相等的,只有在某些情況下會不相等,比如重寫了view的layout方法:
@Override
public void layout(int l, int t, int r, int b) {
super.layout(l, t, r+10, b+10);
}
這樣子的話最終寬高就會比測量寬高多100px。
還有一種情況是View需要多次measure才能確定自己的測量寬高,在前幾次的測量過程中,其得出的測量寬高有可能和最終寬高不一致,但最終來說測量寬高還是和最終寬高相同。