我试图获取表格布局的高度和宽度,并以此来设置按钮的高度和宽度。我使用以下代码来实现这一点:
ViewGroup.LayoutParams params = new TableLayout.LayoutParams();
params.width = params.width/3;
params.height = params.width;
但是该代码无法正常工作,我不确定为什么。
答案 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
希望它能起作用。