关于动态布局的时候调整布局的错误(一)
2016-01-12 19:51
239 查看
转载:http://stackoverflow.com/questions/10045360/getting-classcastexception-when-trying-to-insert-relativelayout-dyanmically/10046252#10046252
这两天在修改SystemUI,由于无法加载静态的横竖屏的布局文件,所以需要动态的修改我们的布局文件,从而达到转屏的时候布局改变的目的,其中就遇到了一个比较奇葩的问题:我在修改转屏之后的FrameLayout的layout_gravity的时候修改该值,就会出现报错,而且报错的原因更是奇葩:java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
我研究了很久都没有发现问题所在,我先看了自己是不是布局的时候布局成了LinearLayout的布局,或者是哪里有转换的错误,但是我寻找了很久还是没有找到有任何不对的地方。接下来我就开始了互联网的搜寻之旅,找了 很久,终于从stackoverflow上面发现了答案。原来是这样的:Each
child element must define LayoutParams that are appropriate for its parent, though it may also define different LayoutParams for its own children。这句话凭我4级424分的水平,大概看了出来这句话的意思是每一个子布局都必须使用其父类的LayoutParams来进行动态布局的设置,尽管有可能他们的布局类型是不同的。
然后这个问题,终于完美的解决了。
这两天在修改SystemUI,由于无法加载静态的横竖屏的布局文件,所以需要动态的修改我们的布局文件,从而达到转屏的时候布局改变的目的,其中就遇到了一个比较奇葩的问题:我在修改转屏之后的FrameLayout的layout_gravity的时候修改该值,就会出现报错,而且报错的原因更是奇葩:java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
我研究了很久都没有发现问题所在,我先看了自己是不是布局的时候布局成了LinearLayout的布局,或者是哪里有转换的错误,但是我寻找了很久还是没有找到有任何不对的地方。接下来我就开始了互联网的搜寻之旅,找了 很久,终于从stackoverflow上面发现了答案。原来是这样的:Each
child element must define LayoutParams that are appropriate for its parent, though it may also define different LayoutParams for its own children。这句话凭我4级424分的水平,大概看了出来这句话的意思是每一个子布局都必须使用其父类的LayoutParams来进行动态布局的设置,尽管有可能他们的布局类型是不同的。
然后这个问题,终于完美的解决了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories