查找布局的高度和宽度的值

时间:2018-06-21 11:01:25

标签: android android-studio-3.0

我试图获取表格布局的高度和宽度,并以此来设置按钮的高度和宽度。我使用以下代码来实现这一点:

ViewGroup.LayoutParams params = new TableLayout.LayoutParams();
params.width = params.width/3;
params.height = params.width;

但是该代码无法正常工作,我不确定为什么。

2 个答案:

答案 0 :(得分:4)

您使用的参数对象也是空的。 您的代码应该是这样

ViewGroup.LayoutParams btnParams = btn.getLayoutParams();

ViewGroup.LayoutParams params = tableLayout.getLayoutParams();
btnParams.width = params.width/3;
btnParams.height = params.width;
btn.setLayoutParams(btnParams)

答案 1 :(得分:1)

在您的{{1}中执行onCreate时,Activity尚未绘制到屏幕上,因此尺寸尚未出现,因为它们尚未在屏幕上布置。 调用UI时,消息会发布到setContentView线程中,以为布局绘制UI,但是将来会在onCreate完成执行后发生。 将UI发布到Runnable线程会将UI放在Runnable线程的消息队列的末尾,因此将在绘制屏幕后执行,因此,一切都有维度。 (这就是为什么您从UI答案中得到NullPointerException的原因)

Niza Siwale

希望它能起作用。