以编程方式调整视图大小

时间:2010-10-07 05:23:00

标签: android

我需要以编程方式调整UI中的视图大小。假设我想将子视图的高度调整为父视图的高度减去60,我会这样做:

child.getLayoutParams().height = parent.getMeasuredHeight() - 60;
child.requestLayout();

(显然,这比我真正需要做的更简单)

当响应,例如,点击按钮等时,这很有效....子视图将根据要求调整其大小,一切都很好。

现在我还需要在活动开始时以及方向发生变化时完成大小调整。最好不要看到任何跳跃。我尝试将它添加到活动的onStart()中,但这不起作用,因为父级的高度测量为零。我也尝试使用getHeight()而不是getMeasuredHeight(),并得到了相同的错误行为。

我在哪里放置此代码,或者我需要做什么,以编程方式调整视图大小?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我在网上找到的解决方案是使用child.post()来延迟活动onCreate中的处理。它适用于我正在做的事情,但我很乐意听到更好的解决方案......

child.post(new Runnable()
    {
      public void run()
      {
        //resize stuff
      }
    }
);