Java 以编程方式调整线性布局的高度

Java 以编程方式调整线性布局的高度,java,android,android-layout,android-linearlayout,Java,Android,Android Layout,Android Linearlayout,每当我尝试设置LinearLayout的高度时,总会出现以下异常: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams 这是我的密码: LinearLayout.LayoutParams hide = new LinearLayout.LayoutParams(ViewGroup.L

每当我尝试设置LinearLayout的高度时,总会出现以下异常:

java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
这是我的密码:

LinearLayout.LayoutParams  hide = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0);
LinearLayout.LayoutParams  show = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100);

driverMainOptions.setLayoutParams(hide);
mapDirections.setLayoutParams(show);
是否需要特定的导入语句才能正确执行此操作?

这应该可以工作

LinearLayout lLayout = new LineaLayout(context);
LayoutParams params = lLayout.getLayoutParams();

params.height = 200;
params.width = 200;
lLayout.setLayoutParams(params);

查看

上的公认答案似乎您的一个布局是相对的。视图的布局参数类型取决于其父视图,而不是其本身。您的LinearLayout似乎位于RelativeLayout中,因此具有RelativeLayout.LayoutParams,而不是LinearLayout.LayoutParams。@我正在修改的布局是线性的。相对布局几乎是所有对象的父对象,但我要操纵的对象是LinearAh OK。有没有办法将alignParentBottom值设置为false?@purewatashi21您需要确保LayoutParams是RelativeLayout.LayoutParams,然后可以使用:params.addRuleRelativeLayout.ALIGN\u PARENT\u BOTTOM,0@purewatashi21,正如Mike M.所说,在使用属性alignParentBottom之前,必须使用RelativeLayout。