FrameLayout中にViewを1つだけ入れた時の呼び出し順序の確認。
Nexus 5でonMeasure、onLayout、layoutメソッドの始めと終わりにログを仕込んだ時の結果。
- MyFrameLayout: begin:onMeasure(widthMeasureSpec=1073742904,heightMeasureSpec=1073743216,wMode=1073741824,hMode=1073741824,wSize=1080,hSize=1392)
- MyView: begin:onMeasure(widthMeasureSpec=-2147482664,heightMeasureSpec=-2147482352,wMode=-2147483648,hMode=-2147483648,wSize=984,hSize=1296)
- MyView: end:onMeasure
- MyFrameLayout: end:onMeasure
- MyFrameLayout: begin:onMeasure(widthMeasureSpec=1073742904,heightMeasureSpec=1073743360,wMode=1073741824,hMode=1073741824,wSize=1080,hSize=1536)
- MyView: begin:onMeasure(widthMeasureSpec=-2147482664,heightMeasureSpec=-2147482208,wMode=-2147483648,hMode=-2147483648,wSize=984,hSize=1440)
- MyView: end:onMeasure
- MyFrameLayout: end:onMeasure
- MyFrameLayout: begin:onLayout(changed=true,left=0,top=0,right=1080,bottom=1536)
- MyView: begin:layout(left=48,top=48,right=1032,bottom=1488)
- MyView: begin:onLayout(changed=true,left=48,top=48,right=1032,bottom=1488)
- MyView: end:onLayout
- MyView: end:layout
- MyView: begin:layout(left=48,top=48,right=1032,bottom=1488)
- MyFrameLayout: end:onLayout
- MyFrameLayout: begin:onMeasure(widthMeasureSpec=1073742904,heightMeasureSpec=1073743360,wMode=1073741824,hMode=1073741824,wSize=1080,hSize=1536)
- MyView: begin:onMeasure(widthMeasureSpec=-2147482664,heightMeasureSpec=-2147482208,wMode=-2147483648,hMode=-2147483648,wSize=984,hSize=1440)
- MyView: end:onMeasure
- MyFrameLayout: end:onMeasure
- MyFrameLayout: begin:onLayout(changed=false,left=0,top=0,right=1080,bottom=1536)
- MyView: begin:layout(left=48,top=48,right=1032,bottom=1488)
- MyView: begin:onLayout(changed=false,left=48,top=48,right=1032,bottom=1488)
- MyView: end:onLayout
- MyView: end:layout
- MyView: begin:layout(left=48,top=48,right=1032,bottom=1488)
- MyFrameLayout: end:onLayout
モード
- AT_MOST : -2147483648 (0x80000000)
- EXACTLY : 1073741824 (0x40000000)
- UNSPECIFIED : 0