java.lang.ClassCastException:android.widget.LinearLayout $ LayoutParams无法转换为android.widget.FrameLayout [英] java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout

查看:149
本文介绍了java.lang.ClassCastException:android.widget.LinearLayout $ LayoutParams无法转换为android.widget.FrameLayout的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目标:从某些屏幕上删除帧布局

Aim : Removing framelayout from some screen

Logcat:

04-05 09:19:44.915: E/AndroidRuntime(26483): FATAL EXCEPTION: main
04-05 09:19:44.915: E/AndroidRuntime(26483): //java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
04-05 09:19:44.915: E/AndroidRuntime(26483):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:311)
04-05 09:19:44.915: E/AndroidRuntime(26483):    at android.view.View.measure(View.java:15775)
04-05 09:19:44.915: E/AndroidRuntime(26483):    at ..
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1411)
04-05 09:19:44.915: E/AndroidRuntime(26483):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:698)
04-05 09:19:44.915: E/AndroidRuntime(26483):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
04-05 09:19:44.915: E/AndroidRuntime(26483):    at android.view.View.measure(View.java:15775)
04-05 09:19:44.915: E/AndroidRuntime(26483):    at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:651)<-------- // i think the problem is DrawerLayout
04-05 09:19:44.915: E/AndroidRuntime(26483):    //at android.view.View.measure(View.java:15775)
04-05 09:19:44.915: E/AndroidRuntime(26483):    //at 

main_activity.xml

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">



<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="2"       
    android:orientation="vertical"      
    >
     <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"       

    >
    <FrameLayout
        android:id="@+id/frame_container_slider"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"       

    />
    </LinearLayout>
<!-- Framelayout to display Fragments -->
<FrameLayout
           android:id="@+id/frame_container"        
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:layout_weight="1"
    />

</LinearLayout>
<!-- Listview to display slider menu -->
<ListView
    android:id="@+id/list_slidermenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@color/list_divider"
    android:dividerHeight="1dp"        
    android:listSelector="@drawable/list_selector"
    android:background="@color/list_background"/>

MainActivity.java:

if(position!=0){
 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0,0,0);
    // framelayout is child of linearlayout 


getSupportFragmentManager().findFragmentById(R.id.frame_container_slider).getView().setLayoutParams(lp);
        }

推荐答案

请从以下代码中更改您的主要活动代码.

Please change your Main activity Code from bellow code.

if (position != 0) {
    FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(0,0,0);
    getSupportFragmentManager().findFragmentById(R.id.frame_container_slider)
                               .getView()
                               .setLayoutParams(lp);
}

这篇关于java.lang.ClassCastException:android.widget.LinearLayout $ LayoutParams无法转换为android.widget.FrameLayout的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆