为什么都是ViewGroup的LayoutParams,也会报cannot be cast to android.view.ViewGroup$MarginLayoutParams?

简介: 为什么都是ViewGroup的LayoutParams,也会报cannot be cast to android.view.ViewGroup$MarginLayoutParams?

今天是周六,分享一首许哲佩一起摇摆吧,一起享受在这华丽的声音和梦幻的歌词里吧

同时分享一张在上海拍的照片
在上海一小巷拍的

正文

今天在代码里要动态改变 SurfaceView 的尺寸时,因为父布局是 FrameLayout ,自然就使用了 如下写法

val layoutParams = FrameLayout!!.layoutParams
      layoutParams.height = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, height, resources.displayMetrics).toInt()
      layoutParams.width = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, width, resources.displayMetrics).toInt()

   SurfaceView!!.layoutParams = layoutParams
   

最后运行的时候 , 没想到这样写居然会报错了????

java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.view.ViewGroup$MarginLayoutParams

异常说的是两个是不同类型的LayoutParams ,但明明都是ViewGroup的LayoutParams呀,而且log上没有标明位置,实际是为什么呢

其实就是不去新建一个LayoutParams,而是从原来的View中直接获取LayoutParams。

val layoutParams = FrameLayout!!.layoutParams

改为
val layoutParams = recordUVCView!!.layoutParams

改完运行结果没有出现异常了。

因为,当一个View已经有了LayoutParams,是不能再次添加一个新创建的LayoutParams的,如果这样操作就会报这样的错。
一个小小的坑,希望大家看到后可以避免。
祝大家周末愉快

目录
相关文章
|
Android开发
IDEA编译gradle提示This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2020.3.1 or newer.
IDEA编译gradle提示This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2020.3.1 or newer.
695 1
|
9月前
|
XML Android开发 数据格式
Android XML 布局基础(三)LayoutParams 布局参数
Android XML 布局基础(三)LayoutParams 布局参数
148 0
|
数据可视化 开发工具 Android开发
Android Git 拉取代码报错:error: cannot pull with rebase: Your index contains uncommitted changes.
造成原因:在使用Android Studio中Git的Commit Directory 将本地更改的代码保存到本地后,点击commit,发现提交不上去,发现本地有代码,这时候拉取代码,报错:cannot pull with rebase: Your index contains uncommitted changes.表示我的索引有未提交的改变
|
API Android开发 Windows
Android P下WindowManager与LayoutParams的详解
WindowManager是什么?WindowManager与window的关系是什么?
598 0
|
XML Android开发 数据格式
android自定义View&自定义ViewGroup(下)
本篇来看看自定义ViewGroup
113 0
|
XML 前端开发 Android开发
android自定义View&自定义ViewGroup(上)
自定义View&自定义ViewGroup
102 0
|
JSON Java Android开发
android studio中出现Cannot resolve symbol 'json'问题完整简单解决方案
android studio中出现Cannot resolve symbol 'json'问题完整简单解决方案
458 0
android studio中出现Cannot resolve symbol 'json'问题完整简单解决方案
|
XML 存储 Java
【Android】Android对于Activity的运用以及ViewGroup和 用户界面组件在项目中的运用
【Android】Android对于Activity的运用以及ViewGroup和 用户界面组件在项目中的运用
116 0
【Android】Android对于Activity的运用以及ViewGroup和 用户界面组件在项目中的运用
|
XML 存储 网络协议
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
131 0
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
|
XML Android开发 数据格式
Android自定义控件(十一)——自定义ViewGroup实现LinearLayout
Android自定义控件(十一)——自定义ViewGroup实现LinearLayout
424 0