【问题标题】:How to set height of a layout after the layout was already created布局创建后如何设置布局高度
【发布时间】:2016-01-23 17:01:10
【问题描述】:

我花了几个小时试图做到这一点,但最后我放弃了。

我有一个线性布局。在它里面我有另一个 LinearLayout,它最初是隐藏的。当某些情况发生时,我需要显示隐藏的布局并且包含布局扩展其高度以显示显示的布局。

我可以检测到布局已显示,但是包含布局未展开。问题是包含布局之后是另一个布局,我需要向下移动以便可以看到新布局。

我终于做到了:

                                sublay.setVisibility(View.VISIBLE);
                                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
                                layout.setLayoutParams(lp);
                                layout.requestLayout();

当然,那没有用。我该怎么做?

【问题讨论】:

  • stackoverflow.com/questions/6798867/…这个问题你解决了吗
  • 是的......它没有工作......虽然 layout.getLayoutParams().height 最初是-1,但这很奇怪
  • 您最初是否在要添加可见性 = false 的 xml 设计中添加了 height 和 width 属性?
  • 它显示-1表示您没有在xml中添加高度和宽度
  • 我以编程方式创建了容器布局,而不是通过 XML,我做到了: final LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);为它

标签: android android-layout android-layoutparams


【解决方案1】:

试试 sublay.getLayoutParams().height = MATCH_PARENT; sublay.getLayoutParams().width = MATCH_PARENT;

【讨论】:

  • 可能布局正确展开了,但是下面的其他布局没有下移
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多