android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams

android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParamsFrameLayout的父控件是一个LinearLayout控件,问题出在,LinearLayout为子控件分配空间的时候,获取FrameLayout的LayoutParams的必须为LinearLayout.LayoutParams,而非FrameLayout.LayoutParams。     简单的举个栗子说明一下:最外层有ReLativeLayoutA,里面有两个Lin

大家好,又见面了,我是你们的朋友全栈君。

FrameLayout的父控件是一个LinearLayout控件,问题出在,LinearLayout为子控件分配空间的时候,获取FrameLayout的LayoutParams的必须为LinearLayout.LayoutParams,而非FrameLayout.LayoutParams。

          简单的举个栗子说明一下:最外层有ReLativeLayout A,里面有两个LinearLayout B、C,而B中又有一个一个FrameLayout D。如果要在代码里设置B的LayoutParams,B的LayoutParams要为RelativeLayout.LayoutParams。

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);   B.setLayoutParams(params);


         而D要设置的话,需要:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0);   params.weight = 8;   D.setLayoutParams(params);


而笔者是直接使用的最外层的RelativeLayout,它的外层不是RelativeLayout了,导致笔者的代码一直报错

java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams

所以笔者就在最外层的RelativeLayout放入了一个RelativeLayout_inside,然后再把自定义view放入RelativeLayout_inside,现在RelativeLayout_inside的外层就是RelativeLayout了,错误也就消失了。

现记录,引以为戒

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160833.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月17日 上午10:00
下一篇 2022年7月17日 上午10:00


相关推荐

  • Matlab矩阵操作[通俗易懂]

    Matlab矩阵操作[通俗易懂]第一部分:矩阵基本知识矩阵是进行数据处理和运算的基本元素。在MATLAB中a、通常意义上的数量(标量)可看成是”1*1″的矩阵;b、n维矢量可看成是”n*1″的矩阵;c、多项式可由它的系数矩阵完全确定。一、矩阵的创建在MATLAB中创建矩阵有以下规则:a、矩阵元素必须在”[]”内;b、矩阵的同行元素之间用空格(或”,”)隔开;c、矩阵的行与行之间用”;”(或回车符)隔开;d、矩阵的元素可以是数值、变量、表达式或函数;e、矩阵的尺寸不必预先定义。下面介绍四种矩阵的创建方法:

    2022年6月25日
    31
  • 维吉尼亚密码原理详解及算法实现

    维吉尼亚密码原理详解及算法实现Playfair 密码编写 或者采用维吉尼亚密码编写 输入明文长度是任意的 明文 量子通信保密技术的诞生和快速发展主要取决于以下两个因素 a 经典保密通信面临着三个难以彻底解决的关键问题 即密钥协商 身份识别和窃听检测 这些问题的有效解决需要新技术 b 在对新技术的探索中 人们发现了量子内在的安全特性及其可能的应用 请写出你的密码机输出结果 可以采用 Playfair 密码或者 Vigen re 密码 这里我采用的是 Vigen recipher 完成信息加密 在 Vigener

    2026年3月19日
    3
  • Java中static的含义和用法

    Java中static的含义和用法static:静态的,用于修饰成员(成员变量,成员方法);1.被static所修饰的变量或者方法会储存在数据共享区;2.被static修饰后的成员变量只有一份!3.当成员被static修饰之后,

    2022年7月1日
    26
  • sublime 中HTML快捷键

    sublime 中HTML快捷键

    2021年10月13日
    45
  • 自定义键盘(二)[通俗易懂]

    自定义键盘(二)[通俗易懂]自定义键盘(二)

    2022年4月20日
    61
  • DXF文件格式——ENTITIES 段

    DXF文件格式——ENTITIES 段本章介绍适用于图形对象的组码 这些代码可以在 DXF 文件的 ENTITIES 区域中找到 并且由 AutoLISP 和 ObjectARX 应用程序在图元定义列表中使用

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号