我是Android编程的新手(尽管我是C语言专家和Java中级专家)。
我不明白为什么当我尝试使用Eclipse在创建新项目时自动生成的默认RelativeLayout来设置我的应用程序时崩溃。
它在Emulater和我的手机上都崩溃了。
但如果我将布局更改为LinearLayout,它的效果非常好。
有人可以给我一个清楚的解释,为什么这个hapens?
由于
答案 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文件并将其更改为相对。
检查您的问题可能是相同的