我一定是错过了一些非常愚蠢的东西。
我的观点中有一个LinearLayout:
_editTextViews = (LinearLayout)findViewById(R.id.editDesAndLocViews);
我想通过设置height
LayoutParams
我有两个LinearLayout.LayoutParams
LinearLayout.LayoutParams collapsedParams;
LinearLayout.LayoutParams openParams;
在构造函数中设置如下:
collapsedParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,0);
openParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
但是一旦我尝试将其中一个参数应用到我的LinearLayout
,就像这样:
_editTextViews.setLayoutParams(collapsedParams);
我得到以下致命异常:
起初我认为我的项目需要清理,因为它似乎认为我试图强制相对布局使用线性布局参数,但一切都是LinearLayout。有问题的LinearLayout确实包含一对RelativeLayouts。我不知道是否/为什么会出现这个问题。
请帮助
答案 0 :(得分:5)
将您的LayoutParams
s类型更改为ViewGroup.LayoutParams
或RelativeLayout.LayoutParams
。
您应用的LayoutParams必须与视图的父布局相匹配。 LayoutParams
定义视图在其父视图(布局)中的布局方式。因为每个布局类型采用不同的参数来布局视图(例如,只有LinearLayout具有权重,只有RelativeLayout可以使用锚点),所以它们都有自己的LayoutParams
。