我需要以编程方式调整UI中的视图大小。假设我想将子视图的高度调整为父视图的高度减去60,我会这样做:
child.getLayoutParams().height = parent.getMeasuredHeight() - 60;
child.requestLayout();
(显然,这比我真正需要做的更简单)
当响应,例如,点击按钮等时,这很有效....子视图将根据要求调整其大小,一切都很好。
现在我还需要在活动开始时以及方向发生变化时完成大小调整。最好不要看到任何跳跃。我尝试将它添加到活动的onStart()中,但这不起作用,因为父级的高度测量为零。我也尝试使用getHeight()而不是getMeasuredHeight(),并得到了相同的错误行为。
我在哪里放置此代码,或者我需要做什么,以编程方式调整视图大小?
答案 0 :(得分:0)
我遇到了同样的问题。我在网上找到的解决方案是使用child.post()来延迟活动onCreate中的处理。它适用于我正在做的事情,但我很乐意听到更好的解决方案......
child.post(new Runnable()
{
public void run()
{
//resize stuff
}
}
);