LinearLayout Params导致了一个转换问题

时间:2014-02-14 14:37:48

标签: android android-layout android-linearlayout

我一定是错过了一些非常愚蠢的东西。

我的观点中有一个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);

我得到以下致命异常: enter image description here

起初我认为我的项目需要清理,因为它似乎认为我试图强制相对布局使用线性布局参数,但一切都是LinearLayout。有问题的LinearLayout确实包含一对RelativeLayouts。我不知道是否/为什么会出现这个问题。

请帮助

1 个答案:

答案 0 :(得分:5)

将您的LayoutParams s类型更改为ViewGroup.LayoutParamsRelativeLayout.LayoutParams

您应用的LayoutParams必须与视图的布局相匹配。 LayoutParams定义视图在其父视图(布局)中的布局方式。因为每个布局类型采用不同的参数来布局视图(例如,只有LinearLayout具有权重,只有RelativeLayout可以使用锚点),所以它们都有自己的LayoutParams