美文网首页
在低版本的手机上会出现GridLayout设置LayoutPar

在低版本的手机上会出现GridLayout设置LayoutPar

作者: 寒冬_腊月 | 来源:发表于2020-03-06 14:39 被阅读0次

问题代码:

ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(DisplayUtil.getScreenWidth(mContext) / 2,
                                       GridLayout.LayoutParams.WRAP_CONTENT);

异常如下:

java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.GridLayout$LayoutParams
        at android.widget.GridLayout.getLayoutParams1(GridLayout.java:729)
        at android.widget.GridLayout.validateLayoutParams(GridLayout.java:663)
        at android.widget.GridLayout.getLayoutParams(GridLayout.java:734)
        at android.widget.GridLayout.measureChildrenWithMargins(GridLayout.java:866)
        at android.widget.GridLayout.onMeasure(GridLayout.java:894)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
        at android.view.View.measure(View.java:12723)
        at android.support.v4.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1449)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at android.support.v4.widget.NestedScrollView.onMeasure(NestedScrollView.java:515)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at android.view.View.measure(View.java:12723)
        at android.support.v4.widget.SwipeRefreshLayout.onMeasure(SwipeRefreshLayout.java:627)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at android.view.View.measure(View.java:12723)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:812)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092)
        at android.view.View.measure(View.java:12723)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064)
        at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4424)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        at dalvik.system.NativeStart.main(Native Method)

解决:

GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams();
layoutParams.width = DisplayUtil.getScreenWidth(mContext) / 2;
layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;

相关文章

网友评论

      本文标题:在低版本的手机上会出现GridLayout设置LayoutPar

      本文链接:https://www.haomeiwen.com/subject/vxsirhtx.html