erik
erik

Reputation: 4948

LinearLayoutParams are causing a casting issue

I must be missing something really stupid.

I have a LinearLayout in my view:

_editTextViews = (LinearLayout)findViewById(R.id.editDesAndLocViews);

I am trying to dynamically change the height of that view by setting the LayoutParams

I have two LinearLayout.LayoutParams

LinearLayout.LayoutParams collapsedParams;
LinearLayout.LayoutParams openParams;

that are set in the constructor like so:

collapsedParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,0);
openParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);

But as soon as i try to apply one of those params to my LinearLayout, like so:

_editTextViews.setLayoutParams(collapsedParams);

I get the following FATAL EXCEPTION: enter image description here

At first i thought my project needed to be cleaned as it seems to think i am trying to force a relative layout to use linear layout params, but everything is LinearLayout. The LinearLayout in question does contain a couple RelativeLayouts. I don't know if / why that would be the problem.

please help

Upvotes: 0

Views: 73

Answers (1)

FD_
FD_

Reputation: 12919

Change your LayoutParamss' type to either ViewGroup.LayoutParams or RelativeLayout.LayoutParams.

The LayoutParams you apply have to match the parent layout of the view. LayoutParams define how a View is layed out in its parent view (layout). Because each layout type takes different parametres for laying out a view (e.g. only LinearLayout has weight, only RelativeLayout can use anchors), they all have their own LayoutParams.

Upvotes: 5

Related Questions