android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutPara

2019-11-09 10:35:14

参考地址 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);



  • 2021-11-03 19:59:58

    Android 11 adb无线调试使用方法

    ​Android 11无线调试不需要再像以前一样,先插上usb线,输入命令来启用无线调试,再进行无线连接了。Android 11系统设置开发者选项中自带了无线调试,今天亲自测试了

  • 2023-08-19 18:57:08

    强制杀死nginx进程简单粗暴

    nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory),最简单的办法,杀死nginx进程,重启