RelativeLayout崩溃,LinearLayout工作正常!为什么?

时间:2012-12-03 14:37:58

标签: android android-layout android-emulator

我是Android编程的新手(尽管我是C语言专家和Java中级专家)。

我不明白为什么当我尝试使用Eclipse在创建新项目时自动生成的默认RelativeLayout来设置我的应用程序时崩溃。

它在Emulater和我的手机上都崩溃了。

但如果我将布局更改为LinearLayout,它的效果非常好。

有人可以给我一个清楚的解释,为什么这个hapens?

由于

2 个答案:

答案 0 :(得分:1)

首先让我解释一下布局并按照给出的例子进行说明:

现在让我们将注意力转向那些组织其他控件的有用布局控件。最常用的布局类是:

FrameLayout - 旨在显示一组子视图控件。可以向此布局添加多个视图控件。这可用于在同一屏幕空间内显示多个控件。

LinearLayout - 旨在在单个行或列中显示子视图控件。这是一种非常方便的用于创建表单的布局方法。

RelativeLayout - 旨在显示相对于彼此的子视图控件。例如,您可以将控件设置为位于另一个控件的“上方”或“下方”或“左侧”或“右侧”,由其唯一标识符引用。您还可以将子视图控件相对于父边对齐。

TableLayout - 旨在将子视图控件组织为行和列。对于表格的每一行,使用TableRow布局视图(基本上是水平方向的LinearLayout)为表格的每一行添加单独的视图控件。

尝试以下代码进行相对布局:

  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical" >
    <LinearLayout
        android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:padding="5dp">
        <TextView
                android:id="@+id/textMsg"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="#000000"
                android:textSize="14dp" />
    </LinearLayout>


<Button
    android:id="@+id/btn2"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="Contacts"
    android:textColor="#342D7E" />

<Button
    android:id="@+id/btn1"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="Send"
    android:textColor="#342D7E" />

<EditText
    android:id="@+id/edittext1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/btn2"
    android:layout_alignParentLeft="true"
    android:ems="10"
    android:hint="Type a Message"
    android:maxLines="5" >

    <requestFocus />
</EditText>
</RelativeLayout>

让我知道它是否再次崩溃

答案 1 :(得分:0)

我只是遇到了同样的问题。我如何解决它: 更改main.xml中的布局后,我在mainActivity.java文件中声明的布局仍为LinearLayout。

进入您的mainActivity.java文件并将其更改为相对。

检查您的问题可能是相同的