博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
阅读量:6324 次
发布时间:2019-06-22

本文共 1196 字,大约阅读时间需要 3 分钟。

最近,在android中用代码动态改变某种布局(组件)的高度时,会遇到如题所示的类转换异常。上网查了一下,如下所示:

These supply parameters to the parent of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.

So basically, if you are adding a view to another, you MUST set the LayoutParams of the view to the LayoutParams type that the parent uses, or you will get a runtime error.

 我是这样理解的,如果你要将一个view添加到另一个布局中,你必须设定该View的布局参数为其父类所使用的布局参数类型。即要在代码中动态改变某组件的高度,其布局参数类型应该是其父类所使用的布局参数类型。

 比如:

<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"  

  android:layout_width="wrap_content"

  android:layout_height="wrap_content">  

  

<FrameLayout 

android:id="@+id/FrameLayout01" 

android:layout_width="wrap_content" 

android:layout_height="wrap_content" />

</LinearLayout>

若想在代码中动态改变FrameLayout的大小,应该这样写:

FrameLayout frameLayout=(FrameLayout) convertView.findViewById(R.id.FrameLayout01); 

 LinearLayout.LayoutParams ff=new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, height);

frameLayout.setLayoutParams(ff);

注:其布局参数类型应该线性布局LinearLayout.LayoutParams的类型,而不是帧布局FrameLayout .LayoutParams。
 

转载地址:http://bilaa.baihongyu.com/

你可能感兴趣的文章
notepad++添加Compare插件
查看>>
Android中Handler Thread及Runnable之间的关系
查看>>
nyoj24大数阶乘
查看>>
[转]如何处理海量数据
查看>>
少一点抱怨
查看>>
TabActivity
查看>>
ecshop 修改商品分类里的略缩图大小和展示商品的个数
查看>>
windows下获取文件夹下所有文件名,并保存到文件中
查看>>
网桥配置
查看>>
spring中事件机制
查看>>
我收藏的技术知识图(每张都是大图)
查看>>
ZOJ 3204 Connect them (最小生成树,输出字典序最小的解)
查看>>
食物链(待解决)
查看>>
【linux】——硬链接和符号链接
查看>>
Ajax的XMLHttpRequest对象
查看>>
通用数据存储格式: Hadoop SequenceFile、HFile
查看>>
几种常见的内嵌数据
查看>>
C++ 流
查看>>
Visual C++ 2008入门经典 第十一章调试技术
查看>>
手把手玩转win8开发系列课程(4)
查看>>