在继承BaseAdapter的时候,用getView返回View的时候,用代码控制布局,需要用到View.setLayoutParams,但是报错了,报的是类型转换错误,经过研究,发现,这里不能使用ViewGroup.LayoutParams而必须使用对应父View的LayoutParams类型。如:某View被LinearLayout包含,则该View的setLayoutParams参数类型必须是LinearLayout.LayoutParams。原因在于LinearLayout(或其他继承自ViewGroup的layout,如:RelativeLayout)在进行递归布局的时候,LinearLayout会获取子View的LayoutParams,并强制转换成LinearLayout.LayoutParams,如

1 LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) child.getLayoutParams();

或者是如下定义:

1 LayoutParams lp = (LayoutParams) child.getLayoutParams();

以转换成内部类型LinearLayout.LayoutParams。

相关文章:

  • 2021-06-26
  • 2021-08-17
  • 2021-11-22
  • 2022-12-23
  • 2021-11-09
  • 2021-12-07
  • 2021-10-16
  • 2021-08-23
猜你喜欢
  • 2022-12-23
  • 2021-10-08
  • 2021-05-24
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2022-01-03
相关资源
相似解决方案