为什么我不能将relativeLayout用作parentView?

时间:2013-05-21 09:52:21

标签: android android-layout crash

这就是我对setContentView(R.layout.activity_main);的看法,我不明白为什么每次运行我的应用程序都会崩溃。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/Mainbody"
   android:layout_width= "wrap_content"
android:layout_height= "wrap_content" 
    >
<LinearLayout
android:id="@+id/Boss"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">


</LinearLayout>

</RelativeLayout>

但如果我使用<LinearLayou>作为主要父母,它就不会崩溃!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/Mainbody"
   android:layout_width= "wrap_content"
android:layout_height= "wrap_content" 
    >
<LinearLayout
android:id="@+id/Boss"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">


</LinearLayout>

</LinearLayout>

这就是log cat对它的评价..

05-20 11:55:14.400: E/AndroidRuntime(2052): FATAL EXCEPTION: main
05-20 11:55:14.400: E/AndroidRuntime(2052): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams

我真的不明白..

1 个答案:

答案 0 :(得分:0)

问题不在你的xml中,而是在java文件中。你正在做这样的事情

LinearLayout xyz = (LinearLayout)findViewById(R.id.Mainbody)

使用RelativeLayout时。所以你得到ClassCastException。这样做

 RelativeLayout xyz = (RelativeLayout)findViewById(R.id.Mainbody)