【问题标题】:Adjusting height of linear layout programmatically以编程方式调整线性布局的高度
【发布时间】:2016-11-14 01:21:59
【问题描述】:

每当我尝试设置 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);

是否需要特定的导入语句才能正确执行?

【问题讨论】:

  • 您的布局之一似乎是RelativeLayout
  • LayoutParamsView 的类型取决于其父 View,而不是它本身。您的 LinearLayout 似乎在 RelativeLayout 中,RelativeLayout.LayoutParams 也是如此,而不是 LinearLayout.LayoutParams
  • @JuanCruzSoler 我正在修改的布局是线性的。相对布局几乎是所有对象的父级,但我要操作的对象是线性的

标签: java android android-layout android-linearlayout


【解决方案1】:

这应该可以工作

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

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

Android: How to Programmatically set the size of a Layout查看接受的答案

【讨论】:

  • 啊,好吧。有没有办法将“alignParentBottom”值设置为 false?
  • @purewatashi21 你需要确保LayoutParamsRelativeLayout.LayoutParams,然后你可以使用:params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
  • @purewatashi21,正如 Mike M. 所说,您必须先使用 RelativeLayout,然后才能使用属性 alignParentBottom。
猜你喜欢
  • 1970-01-01
  • 2013-01-09
  • 2020-01-11
  • 2015-04-28
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多