以编程方式将LinearLayout高度更改为0

时间:2012-09-03 09:40:01

标签: android android-layout

我从LinearLayout的原始高度0恢复ViewGroup.LayoutParams params = getLayoutParams(); params.height = newHeight; requestLayout();

newHeight = 0

GONE外,一切正常 - 布局的高度会变回原来的高度。我怎么能避免它?

如果newHeight == 0没有帮助,请将{{1}}的可见性设置为

4 个答案:

答案 0 :(得分:12)

试试这个......

 LinearLayout layout = (LinearLayout)findViewById(R.id.yourLayoutId);

 LinearLayout.LayoutParams lp = (LayoutParams) layout.getLayoutParams();
 lp.height = 0;

答案 1 :(得分:0)

您是否必须使用setBaseAttributes()设置params的高度? int height = ...params ...

不会产生任何影响

答案 2 :(得分:0)

你确定你得到的是实际的参数对象,而不是一个副本吗? 我会尝试以下代码:

ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
setLayoutParams(params);
requestLayout();

答案 3 :(得分:0)

然后尝试设置新的布局参数对象。这应该工作

ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,0);
layout.setLayoutParams(lp);