-2

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

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

它在模拟器和我的手机上都崩溃了。

但是,如果我将布局更改为 LinearLayout 它工作得非常好。

谁能给我一个清楚的解释为什么会发生这种情况?

谢谢

4

2 回答 2

1

首先让我向您解释一下布局并按照给定的示例进行操作:

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

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

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

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

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>

让我知道它是否再次崩溃

于 2012-12-03T14:43:50.100 回答
0

我只是有同样的问题。

我如何修复它:在 main.xml 中更改布局后,我在 mainActivity.java 文件中声明的布局仍然是 LinearLayout。

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

检查你的它可能会解决它

于 2018-11-23T11:47:54.660 回答