参考地址 android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutPara
<LinearLayout
android:id="@+id/ll_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_move"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/blue_line" />
</LinearLayout>
上面是布局文件,我要早代码中重新设置ImageView的宽度,用以下方法:
LayoutParams layoutParams = (LayoutParams) iv_move.getLayoutParams();
layoutParams.width = move_width;
iv_move.setLayoutParams(layoutParams);
运行的时候会报错: Caused by: java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.Re
解决方法:ImageView是LinearLayout的子控件,它的LayoutParams 应该是LinearLayout给他的。所以应该是LinearLayout.LayoutParam 。
代码改成:
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) iv_move.getLayoutParams();
layoutParams.width = move_width;
iv_move.setLayoutParams(layoutParams);