Android - 获取父布局的高度

Rob*_*bin 9 android

我想确定我必须添加视图的父布局的可用高度和宽度.

我在布局上使用了很多方法

  • layout.getHeight()
  • layout.getRootView().的getHeight()

所有这些方法都返回0(零)作为结果.

我的主要要求是能够为视图提供宽度,该宽度是布局宽度的百分之一.

此外,我不想使用标签.我想通过代码来做.

提前致谢.

Rob*_*bin 7

好.我找到了解决方案.我们在活动中获得屏幕高度的方式是

getApplicationContext().getResources().getDisplayMetrics().heightPixels

但我仍然不知道如何获得父布局的像素尺寸?


Meg*_*Rel 5

这里的问题是你在layoutmanager完成父布局之前尝试获取父高度/权重.在布局完成后,您只能获得父级维度.

执行您想要实现的目标的推荐方法是使用LayoutParams的layout_weight字段. 链接文字

特别是你应该使用:

LayoutParams lp = new LinearLayout.LayoutParams(width, height,
weight);
Run Code Online (Sandbox Code Playgroud)

layout_weight值可以是介于0.0到1.0之间的任何值.所以例如,如果我在parentLayout中有myButton,并且我希望myButton占据父布局的30%......我会使用类似的东西:

 myButton.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                                               LayoutParams.WRAP_CONTENT,0.3));
Run Code Online (Sandbox Code Playgroud)

所有子元素的layout_weight总和应为1.此外,layout_weight不应与视图的宽度或高度设置为LayoutParams.FILL_PARENT一起使用.