FrameLayout
onMeasure()
1. measureChildWithMargins() ViewGroup.java
1.1 getChildMeasureSpec() ViewGroup.java
1.2 child.measure() View.java
1.2.1 chlid.onMeasure()
2. resolveSizeAndState() View.java
3. setMeasuredDimension() View.java
LinearLayout
onMeasure()
1. measureChildWithMargins() ViewGroup.java
1.1 getChildMeasureSpec() ViewGroup.java
1.2 child.measure() View.java
1.2.1 chlid.onMeasure()
2. resolveSizeAndState() View.java
3. setMeasuredDimension() View.java
RelateveLayout
onMeasure()
1. measureChild() RelateveLayout.java
1.1 getChildMeasureSpec() RelateveLayout.java
1.2 child.measure() View.java
1.2.1 chlid.onMeasure()
2. resolveSizeAndState() View.java
3. setMeasuredDimension() View.java
AbsoluteLayout
onMeasure()
1. measureChildren() ViewGroup.java
1.1 getChildMeasureSpec() ViewGroup.java
1.2 child.measure() View.java
1.2.1 chlid.onMeasure()
2. resolveSizeAndState() View.java
3. setMeasuredDimension() View.java
本文详细解析了Android中几种常见布局(包括FrameLayout、LinearLayout、RelativeLayout和AbsoluteLayout)的onMeasure()方法实现过程。通过深入探讨measureChildWithMargins()、getChildMeasureSpec()、child.onMeasure()等关键步骤,以及resolveSizeAndState()和setMeasuredDimension()的作用,帮助读者理解视图如何确定其大小。
341

被折叠的 条评论
为什么被折叠?



