我有 5 个线性布局。为了便于书写和理解,我将它们称为视图 A - E。
视图 A 是视图 B、C、D 和 E 的父视图。
我已将视图 A 的 layout_weight 设置为 8.0f,将视图 B - E 的权重分别设置为 1.0f、3.0f、1.0f、3.0f。
我知道这是为了管理父视图中的空白空间,但我希望调整我的视图和子视图的大小以拥有屏幕的百分比,而不是仅仅争夺可用空间。
但是,这一切都是以编程方式完成的,所以我应该将 LinearLayouts 的高度设置为getHeight()
其父级(视图 A)的方法/访问器的系数吗?如果是这样,那么如果尚未将视图添加到其父级,我如何获得父级的高度,这将使用 MATCH_PARENT 设置其高度?
由于该getHeight()
方法将为 , 和 first 返回 0 onCreate
,onStart
因此onResume
我不得不继续寻找答案。我找到了ViewTreeObserver
and OnGlobalLayoutListener
,它会让我知道什么时候Layout
s 已经设置好了。但是,我真的很感激在任何绘图发生之前有高度。那不可能吗?