当我在measure()
上使用TabHost
时,getMeasuredHeight()
总是返回当前活动标签的高度。
是否可以测量整个TabHost
的高度,即找出所有标签中的最大高度?
我对这里看到的行为感到有些困惑,因为TabHost
被描述为ViewGroup
,
[...]包含两个子项:用户单击以选择的一组选项卡标签 一个特定的选项卡,以及一个FrameLayout对象,该对象显示以下内容 该页面(source)
因此我们可以看到它使用了FrameLayout
,并且再次根据文档,FrameLayout
的尺寸是这样计算的:
FrameLayout的大小是其最大子项的大小(加上 填充),可见与否(如果FrameLayout的父级允许)(source)
因此,如果FrameLayout
的大小始终是最大子项的大小,那么getMeasuredHeight()
上的TabHost
是否应该自动返回所有标签的最大高度?但事实并非如此。它返回当前活动标签的高度,因此,一旦显示新标签,getMeasuredHeight()
返回的高度就会改变。
那么我如何找出TabHost
的最大高度?