我想确定我必须添加视图的父布局的可用高度和宽度.
我在布局上使用了很多方法
所有这些方法都返回0(零)作为结果.
我的主要要求是能够为视图提供宽度,该宽度是布局宽度的百分之一.
此外,我不想使用标签.我想通过代码来做.
提前致谢.
好.我找到了解决方案.我们在活动中获得屏幕高度的方式是
getApplicationContext().getResources().getDisplayMetrics().heightPixels
但我仍然不知道如何获得父布局的像素尺寸?
这里的问题是你在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一起使用.
归档时间: |
|
查看次数: |
31717 次 |
最近记录: |