容易被忽视的问题之:View的setLayoutParams()方法

               翻看自己的笔记,发现以前有碰到过的一个问题,就是用了setLayoutParams去重新设置子view的位置时候,但是APP却崩了,查看崩溃日志,一般就是提示这种XXXLayoutParams can`t cast to YYYLayoutParames

所以特意重现一下日志,例如这种:

容易被忽视的问题之:View的setLayoutParams()方法_第1张图片


实际上这种问题如果有源码查看就很明确了,我们看下view里面这个方法的源码:


容易被忽视的问题之:View的setLayoutParams()方法_第2张图片


是不是发现params这个值原来是给当前view的父布局去用的

这就解释了为什么会出现转换错误,所以说子布局调用setlayoutparams方法的时候,里面的layoutparams参数必须要跟父布局的类型相同,这样这个问题就解决了。

你可能感兴趣的:(android)