Jay*_*non 1 android classcastexception android-linearlayout android-fragments android-framelayout
我试图设置2个框架布局的宽度和高度,这是2个片段的容器,它们都是线性布局的子代。
但是,每当我使用
frameLayout.setLayoutParams(new FrameLayout.LayoutParams(100,100);
Run Code Online (Sandbox Code Playgroud)
它导致类强制转换异常
java.lang.ClassCastException:android.widget.FrameLayout $ LayoutParams无法转换为android.widget.LinearLayout $ LayoutParams
这个答案实际上是互补的,因为有些人已经解释了解决方案,但我想进一步澄清这个问题。
如上所述,您必须将参数设置为 PARENT 视图而不是视图本身。您说 FrameLayouts 在LinearLayouts 内,因此您必须为此设置参数。
这就是你得到异常的原因
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams 不能转换为 android.widget.LinearLayout$LayoutParams
编译器准确地告诉您,您不能将FrameLayout 参数转换为 LinearLayout。
LayoutParams 被视图用来告诉他们的父母他们想要如何布局。有关此类支持的所有子视图属性的列表,请参阅 ViewGroup 布局属性。
希望能进一步澄清问题!
使用这种方法...
.setLayoutParams(new LinearLayout.LayoutParams(100,100);
Run Code Online (Sandbox Code Playgroud)
而不是你的方法....
.setLayoutParams(new FrameLayout.LayoutParams(100,100)
Run Code Online (Sandbox Code Playgroud)
注意:- ClassCastException当您的班级与其他班级不同时,您想投射...时会发生问题。