我从LinearLayout
的原始高度0
恢复ViewGroup.LayoutParams params = getLayoutParams();
params.height = newHeight;
requestLayout();
:
newHeight = 0
除GONE
外,一切正常 - 布局的高度会变回原来的高度。我怎么能避免它?
如果newHeight == 0
没有帮助,请将{{1}}的可见性设置为
答案 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);